Преобразовать значение столбца в Dataframe в список - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть следующий исходный файл. В моем файле есть имя "john", которое я хочу разделить на список ['j','o','h','n']. Пожалуйста, найдите файл человека следующим образом.

Исходный файл:

id,name,class,start_data,end_date
1,john,xii,20170909,20210909

Код:

from pyspark.sql import SparkSession

def main():
    spark = SparkSession.builder.appName("PersonProcessing").getOrCreate()

    df = spark.read.csv('person.txt', header=True)
    nameList = [x['name'] for x in df.rdd.collect()]
    print(list(nameList))
    df.show()

if __name__ == '__main__':
    main()

Фактический результат:

[u'john']

Требуемый выход:

['j','o','h','n']

Ответы [ 3 ]

0 голосов
/ 04 сентября 2018

Если вы хотите в python:

nameList = [c  for x in df.rdd.collect() for c in x['name']]

или если вы хотите сделать это в искре:

from pyspark.sql import functions as F

df.withColumn('name', F.split(F.col('name'), '')).show()

Результат:

+---+--------------+-----+----------+--------+
| id|          name|class|start_data|end_date|
+---+--------------+-----+----------+--------+
|  1|[j, o, h, n, ]|  xii|  20170909|20210909|
+---+--------------+-----+----------+--------+
0 голосов
/ 04 сентября 2018

.tolist () превращает серию панд в список питонов, поэтому сначала вы должны создать список из данных и выполнить цикл по созданному списку.

namelist=df['name'].tolist()
for x in namelist:
    print(x)
0 голосов
/ 04 сентября 2018
nameList = [x for x in 'john']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...