En este artículo, discutiremos cómo convertir la columna del marco de datos de Pyspark en una lista de Python.
Creando dataframe para demostración:
Python3
# importing module import pyspark # importing sparksession from pyspark.sql module from pyspark.sql import SparkSession # creating sparksession and giving an app name spark = SparkSession.builder.appName('sparkdf').getOrCreate() # list of students data data = [["1", "sravan", "vignan", 67, 89], ["2", "ojaswi", "vvit", 78, 89], ["3", "rohith", "vvit", 100, 80], ["4", "sridevi", "vignan", 78, 80], ["1", "sravan", "vignan", 89, 98], ["5", "gnanesh", "iit", 94, 98]] # specify column names columns = ['student ID', 'student NAME', 'college', 'subject1', 'subject2'] # creating a dataframe from the lists of data dataframe = spark.createDataFrame(data, columns) # display dataframe dataframe.show()
Producción:
Método 1: Usando flatMap()
Este método toma la columna seleccionada como entrada que usa rdd y la convierte en la lista.
Sintaxis: dataframe.select(‘Column_Name’).rdd.flatMap(lambda x: x).collect()
dónde,
- el marco de datos es el marco de datos pyspark
- Column_Name es la columna que se convertirá en la lista
- flatMap() es el método disponible en rdd que toma una expresión lambda como parámetro y convierte la columna en una lista
- collect() se utiliza para recopilar los datos en las columnas
Ejemplo 1: código de Python para convertir una columna particular en una lista usando flatMap
Python3
# convert student Name to list using # flatMap print(dataframe.select('student Name'). rdd.flatMap(lambda x: x).collect()) # convert student ID to list using # flatMap print(dataframe.select('student ID'). rdd.flatMap(lambda x: x).collect())
Producción:
[‘sravan’, ‘ojaswi’, ‘rohith’, ‘sridevi’, ‘sravan’, ‘gnanesh’]
[‘1’, ‘2’, ‘3’, ‘4’, ‘1’, ‘5’]
Ejemplo 2: convertir varias columnas en una lista.
Python3
# convert multiple columns to list using flatMap print(dataframe.select(['student Name', 'student Name', 'college']). rdd.flatMap(lambda x: x).collect())
Producción:
[‘sravan’, ‘sravan’, ‘vignan’, ‘ojaswi’, ‘ojaswi’, ‘vvit’, ‘rohith’, ‘rohith’, ‘vvit’, ‘sridevi’, ‘sridevi’, ‘vignan’, ‘ sravan’, ‘sravan’, ‘vignan’, ‘gnanesh’, ‘gnanesh’, ‘iit’]
Método 2: Usar mapa()
Esta función se utiliza para asignar la columna del marco de datos dado a la lista
Sintaxis: dataframe.select(‘Column_Name’).rdd.map(lambda x : x[0]).collect()
dónde,
- el marco de datos es el marco de datos pyspark
- Column_Name es la columna que se convertirá en la lista
- map() es el método disponible en rdd que toma una expresión lambda como parámetro y convierte la columna en una lista
- collect() se utiliza para recopilar los datos en las columnas
Ejemplo: código de Python para convertir la columna del marco de datos pyspark en una lista usando la función de mapa.
Python3
# convert student Name to list using map print(dataframe.select('student Name'). rdd.map(lambda x : x[0]).collect()) # convert student ID to list using map print(dataframe.select('student ID'). rdd.map(lambda x : x[0]).collect()) # convert student college to list using # map print(dataframe.select('college'). rdd.map(lambda x : x[0]).collect())
Producción:
[‘sravan’, ‘ojaswi’, ‘rohith’, ‘sridevi’, ‘sravan’, ‘gnanesh’]
[‘1’, ‘2’, ‘3’, ‘4’, ‘1’, ‘5’]
[‘vignan’, ‘vvit’, ‘vvit’, ‘vignan’, ‘vignan’, ‘iit’]
Método 3: Usar recopilar()
Collect se usa para recopilar los datos del marco de datos, usaremos una estructura de datos de comprensión para obtener la columna del marco de datos de pyspark en la lista con el método de recolección().
Sintaxis: [datos[0] para datos en dataframe.select(‘column_name’).collect()]
Dónde,
- el marco de datos es el marco de datos pyspark
- data es el iterador de la columna del marco de datos
- column_name es la columna en el marco de datos
Ejemplo: código de Python para convertir columnas de marco de datos en una lista usando el método de recopilación()
Python3
# display college column in # the list format using comprehension print([data[0] for data in dataframe. select('college').collect()]) # display student ID column in the # list format using comprehension print([data[0] for data in dataframe. select('student ID').collect()]) # display subject1 column in the list # format using comprehension print([data[0] for data in dataframe. select('subject1').collect()]) # display subject2 column in the # list format using comprehension print([data[0] for data in dataframe. select('subject2').collect()])
Producción:
['vignan', 'vvit', 'vvit', 'vignan', 'vignan', 'iit'] ['1', '2', '3', '4', '1', '5'] [67, 78, 100, 78, 89, 94] [89, 89, 80, 80, 98, 98]
Método 4: Usando toLocalIterator()
Este método se usa para iterar los valores de la columna en el marco de datos, usaremos una estructura de datos de comprensión para que la columna del marco de datos pyspark aparezca en la lista con el método toLocalIterator().
Sintaxis: [datos[0] para datos en dataframe.select(‘column_name’).toLocalIterator()]
Dónde,
- el marco de datos es el marco de datos pyspark
- data es el iterador de la columna del marco de datos
- column_name es la columna en el marco de datos
Ejemplo: convertir las columnas del marco de datos de pyspark en una lista usando el método toLocalIterator()
Python3
# display college column in the list # format using comprehension print([data[0] for data in dataframe. select('college').collect()]) # display student ID column in the # list format using comprehension print([data[0] for data in dataframe. select('student ID').toLocalIterator()]) # display subject1 column in the list # format using comprehension print([data[0] for data in dataframe. select('subject1').toLocalIterator()]) # display subject2 column in the # list format using comprehension print([data[0] for data in dataframe. select('subject2').toLocalIterator()])
Producción:
['vignan', 'vvit', 'vvit', 'vignan', 'vignan', 'iit'] ['1', '2', '3', '4', '1', '5'] [67, 78, 100, 78, 89, 94] [89, 89, 80, 80, 98, 98]
Método 5: Usar toPandas()
Se usa para convertir una columna en un marco de datos, y luego podemos convertirla en una lista.
Sintaxis: list(dataframe.select(‘column_name’).toPandas()[‘column_name’])
Dónde,
- toPandas() se usa para convertir una columna particular en un marco de datos
- column_name es la columna en el marco de datos pyspark
Ejemplo: convertir las columnas del marco de datos de pyspark en una lista usando el método toPandas()
Python3
# display college column in # the list format using toPandas print(list(dataframe.select('college'). toPandas()['college'])) # display student NAME column in # the list format using toPandas print(list(dataframe.select('student NAME'). toPandas()['student NAME'])) # display subject1 column in # the list format using toPandas print(list(dataframe.select('subject1'). toPandas()['subject1'])) # display subject2 column # in the list format using toPandas print(list(dataframe.select('subject2'). toPandas()['subject2']))
Producción:
[‘vignan’, ‘vvit’, ‘vvit’, ‘vignan’, ‘vignan’, ‘iit’]
[‘sravan’, ‘ojaswi’, ‘rohith’, ‘sridevi’, ‘sravan’, ‘gnanesh’]
[67, 78, 100, 78, 89, 94]
[89, 89, 80, 80, 98, 98]
Publicación traducida automáticamente
Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA