Spark Column объединяет весь список в один список - PullRequest
0 голосов
/ 11 декабря 2019

Я хочу, чтобы приведенный ниже столбец слился в один список для вычисления n-граммов. Я не уверен, как я могу объединить все списки в столбце в один.

+--------------------+
|              author|
+--------------------+
|       [Justin, Lee]|
|[Chatbots, were, ...|
|[Our, hopes, were...|
|[And, why, wouldn...|
|[At, the, Mobile,...|
+--------------------+

(Правка) Еще немного информации: я хотел бы, чтобы это был столбец spark df и все слова, включаяповторяющиеся в одном списке. Данные довольно большие, поэтому я хочу избегать таких методов, как collect

1 Ответ

0 голосов
/ 11 декабря 2019

Кадры данных, так же как и другие распределенные структуры данных, не повторяемы и доступны только при использовании специальной функции высшего порядка и / или методов SQL.

Предположим, что ваш кадр данных - DF1, а вывод - DF2

Вам нужно что-то вроде:

values = [(['Justin', 'Lee'],), (['Chatbots', 'were'],), (['Our', 'hopes', 'were'],),
          (['And', 'why', 'wouldn'],), (['At', 'the', 'Mobile'],)]
df = spark.createDataFrame(values, ['author', ])
df.agg(F.collect_list('author').alias('author')).show(truncate=False)

Upvote, если работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...