我在 spark 列中有n(长度)值。我想创建一个k列的 spark dataframe
(其中k是样本数)和m行(其中m是样本大小)。我尝试使用withColumn
,但它无效。 Join
通过创建唯一ID对我来说效率非常低。
e.g。 Spark列具有以下值:
102 320 11 101 2455 124
我想在数据框中创建2个分数为0.5的样本作为列。
因此采样数据框将类似于
sample1,sample2
320,101
124,2455
2455,11
让df有一个列UNIQUE_ID_D
,我需要来自此列的k个样本。以下是k = 2
var df1 = df.select("UNIQUE_ID_D").sample(false, 0.1).withColumnRenamed("UNIQUE_ID_D", "ID_1")
var df2 = df.select("UNIQUE_ID_D").sample(false, 0.1).withColumnRenamed("UNIQUE_ID_D", "ID_2")
df1.withColumn("NEW_UNIQUE_ID", df2.col("ID_2")).show
由于withColumn
无法访问df2
列,因此无效。
通过在两个df中添加序列列(连接列),只能通过join
df1和df2。
对于我的用例非常低效,因为如果我想要获取100个样本,我需要在一个循环中加入100次单个列。我需要对原始df中的所有列执行此操作。
我怎么能实现这个目标?