要列出的 Pyspark 数据框列
Pyspark dataframe column to list
我正在尝试将列值列表从数据框中提取到列表中
+------+----------+------------+
|sno_id|updt_dt |process_flag|
+------+----------+------------+
| 123 |01-01-2020| Y |
+------+----------+------------+
| 234 |01-01-2020| Y |
+------+----------+------------+
| 512 |01-01-2020| Y |
+------+----------+------------+
| 111 |01-01-2020| Y |
+------+----------+------------+
输出应该是 sno_id ['123','234','512','111'] 的列表
然后我需要将列表迭代到 运行 列表值中每个值的一些逻辑。我目前正在使用 HiveWarehouseSession 通过使用 hive.executeQuery(query)
从 hive table 中获取数据到 Dataframe
感谢您的帮助。
这很容易,因为您可以先使用 return 行类型列表收集 df,然后
row_list = df.select('sno_id').collect()
然后您可以迭代行类型以将列转换为列表
sno_id_array = [ row.sno_id for row in row_list]
sno_id_array
['123','234','512','111']
使用平面地图和更优化的解决方案
sno_id_array = df.select("sno_id ").rdd.flatMap(lambda x: x).collect()
我正在尝试将列值列表从数据框中提取到列表中
+------+----------+------------+
|sno_id|updt_dt |process_flag|
+------+----------+------------+
| 123 |01-01-2020| Y |
+------+----------+------------+
| 234 |01-01-2020| Y |
+------+----------+------------+
| 512 |01-01-2020| Y |
+------+----------+------------+
| 111 |01-01-2020| Y |
+------+----------+------------+
输出应该是 sno_id ['123','234','512','111'] 的列表 然后我需要将列表迭代到 运行 列表值中每个值的一些逻辑。我目前正在使用 HiveWarehouseSession 通过使用 hive.executeQuery(query)
从 hive table 中获取数据到 Dataframe感谢您的帮助。
这很容易,因为您可以先使用 return 行类型列表收集 df,然后
row_list = df.select('sno_id').collect()
然后您可以迭代行类型以将列转换为列表
sno_id_array = [ row.sno_id for row in row_list]
sno_id_array
['123','234','512','111']
使用平面地图和更优化的解决方案
sno_id_array = df.select("sno_id ").rdd.flatMap(lambda x: x).collect()