要列出的 Pyspark 数据框列

Cav*_*lez 4 pyspark pyspark-dataframes

我正在尝试将数据框中的列值列表提取到列表中

+------+----------+------------+
|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      |
+------+----------+------------+
Run Code Online (Sandbox Code Playgroud)

输出应该是 sno_id ['123','234','512','111'] 然后我需要迭代列表以对每个列表值运行一些逻辑。我目前正在使用 HiveWarehouseSession 通过使用 hive.executeQuery(query) 从 hive 表中获取数据到 Dataframe

感谢你的帮助。

Str*_*ick 7

这很容易,因为您可以先收集 df 并返回行类型列表然后

row_list = df.select('sno_id').collect()
Run Code Online (Sandbox Code Playgroud)

然后您可以迭代行类型以将列转换为列表

sno_id_array = [ row.sno_id for row in row_list]

sno_id_array 
['123','234','512','111']
Run Code Online (Sandbox Code Playgroud)

使用平面地图和更优化的解决方案

sno_id_array = df.select("sno_id ").rdd.flatMap(lambda x: x).collect()
Run Code Online (Sandbox Code Playgroud)