0
私は次のようなデータフレームを持っているのオフベース値:重複行の別の列
ID NumRecords
123 2
456 1
789 3
私は2つの列を連結し、に基づいて行を複製し、新たなデータフレームを作成したいですNumRecordsの値は
ので、出力は
ID_New 123-1
ID_New 123-2
ID_New 456-1
ID_New 789-1
ID_New 789-2
ID_New 789-3
私は「爆発する」機能に探していたしなければならないが、EXAに基づいてのみ定数を取るように見えました私は見た。私は同様の問題があった
from pyspark.sql.functions import udf, explode, concat_ws
from pyspark.sql.types import *
range_ = udf(lambda x: [str(y) for y in range(1, x + 1)], ArrayType(StringType()))
df.withColumn("records", range_("NumRecords") \
.withColumn("record", explode("records")) \
.withColumn("ID_New", concat_ws("-", "id", "record"))
私が得たが、「タプルオブジェクトを呼び出すことはできません"on df.withColumn(" records "、range _(" NumRecords ")) – Dan