python - 将数据框中的列值转换为列表
问题描述
我有以下源文件。我的文件中有一个名为“ 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']]
或者如果你想在火花中做到这一点:
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|
+---+--------------+-----+----------+--------+
推荐阅读
- excel - 如何在 iframe 中显示 xlsx 文件
- python - 从数组中的一个浮点数中查找值
- python - 元组中仅打印一个元素
- java - JScrollPanel,水平和垂直滚动不起作用
- ecmascript-5 - DocFx 预处理器上下文中的简单 API 调用
- android - 为什么当我点击底部导航时,它会发生变化?
- amazon-web-services - 使用 Lambda 函数执行多个 DynamoDb 查询
- swift - 为什么我可以从参数重新定义变量名?
- python - 在列表中查找连续整数 unsorted-Python
- django-models - 如何使用视图向数据库创建数据