Столбец данных Pyspark в список - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь извлечь список значений столбцов из кадра данных в список

+------+----------+------------+
|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 '] Затем мне нужно перебрать список, чтобы запустить несколько logi c для каждого из значений списка. В настоящее время я использую HiveWarehouseSession для извлечения данных из таблицы улья в Dataframe с помощью hive.executeQuery (query)

Благодарим Вас за помощь.

1 Ответ

0 голосов
/ 26 февраля 2020

это довольно просто, так как вы можете сначала собрать df с возвращением списка типа Row, затем

row_list = df.select('sno_id').collect()

, затем вы можете выполнить итерацию по типу строки для преобразования столбца в список

sno_id_array = [ row.sno_id for row in row_list .collect()]

sno_id_array 
['123','234','512','111']

Использование плоской карты и более оптимизированного решения

sno_id_array = df.select("sno_id ").rdd.flatMap(lambda x: x).collect()
...