Pyspark, groupBy и префикс вложенных столбцов - PullRequest
0 голосов
/ 12 июня 2019

В pyspark я пытаюсь подсчитать уникальные вхождения идентификатора пользователя в журналах json (набор данных - это файл json).

Следующие работы:

df.select(
        F.col("nested.user_id")
    )\
    .where(
        ...
    )\
    .groupBy(
        F.col("user_id")
    )\
    .count()

Обратите внимание, что«вложенный».префикс не появляется в предложении groupBy.Кажется, автоматически удаляется искрой.Мне нужно, чтобы этот префикс появился, и попробовал следующий запрос:

df.select(
        F.col("nested.user_id").alias("nested.user_id")
    )\
    .where(
        ...
    )\
    .groupBy(
        F.col("nested.user_id")
    )\
    .count()

Псевдоним, кажется, работает, но groupBy не знает об этом:

org.apache.spark.sql.AnalysisException: cannot resolve '`nested.user_id`' given input columns: [nested.user_id];

Есть идеи?Спасибо

1 Ответ

0 голосов
/ 12 июня 2019

Спасибо комментарию @pault, вот ответ:

df.select(
        F.col("nested.user_id").alias("nested.user_id")
    )\
    .where(
        ...
    )\
    .groupBy(
        F.col("`nested.user_id`")
    )\
    .count()

В предложении groupBy были добавлены обратные ссылки.

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