【发布时间】:2018-12-09 01:53:20
【问题描述】:
我想根据每行上给定列的值复制我的 DataFrame 中的所有行,然后索引每个新行。假设我有:
Column A Column B
T1 3
T2 2
我希望结果是:
Column A Column B Index
T1 3 1
T1 3 2
T1 3 3
T2 2 1
T2 2 2
我能够使用固定值进行类似的操作,但不能使用列上的信息。我当前的固定值工作代码是:
idx = [lit(i) for i in range(1, 10)]
df = df.withColumn('Index', explode(array( idx ) ))
我试图改变:
lit(i) for i in range(1, 10)
到
lit(i) for i in range(1, df['Column B'])
并将其添加到我的 array() 函数中:
df = df.withColumn('Index', explode(array( lit(i) for i in range(1, df['Column B']) ) ))
但它不起作用(TypeError: 'Column' 对象不能被解释为整数)。
我应该如何实现这个?
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql pyspark-sql