Skip to main content
 首页 » 编程设计

python之将数据框中的列值转换为列表

2025年05月04日21arxive

我有以下源文件。我的文件中有一个名为“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'] 

请您参考如下方法:

如果你想在 python 中:

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

或者如果你想在 spark 中这样做:

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| 
+---+--------------+-----+----------+--------+