создать столбец с диапазоном значений между значениями в двух других столбцах в pyspark - PullRequest
0 голосов
/ 01 июля 2019

У меня есть две колонки A (год1) и B (год2) в искре.Мне нужно создать столбец C, который должен содержать массив лет между 1 и 2 годами.
Предположим, что A - 1990 и B - 1993 o / p C - должно быть [1990,1990,1991,1991,1992, 1992, 1993, 1993]

может кто-нибудь придумать решение (искру) без использования udf

1 Ответ

0 голосов
/ 02 июля 2019

Вы можете попробовать, предположим, что df содержит year1 и year2.

from pyspark.sql import SparkSession
from pyspark.sql import functions as F

spark = SparkSession.builder.getOrCreate()

years = spark.range(2020).withColumnRenamed('id', 'year')
df = (
    df
    .withColumn(
        ‘id’,
        F. monotonically_increasing_id()
        ) # EDIT: There was a missing bracket here
    .join(
        years,
        F.col(‘year’).between(‘year1’, ‘year2’),
    )
    .groupBy(
        ‘id’
    )
    .agg(
        F.collect_list(‘year’).alias(‘years’)
    )
)

Дайте мне знать, что это не работает.

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