String 如何在使用pyspark、spark+DataRicks时向数据帧添加完全无关的列
假设我有一个数据帧:String 如何在使用pyspark、spark+DataRicks时向数据帧添加完全无关的列,string,apache-spark,dataframe,pyspark,databricks,String,Apache Spark,Dataframe,Pyspark,Databricks,假设我有一个数据帧: myGraph=spark.createDataFrame([(1.3,2.1,3.0), (2.5,4.6,3.1), (6.5,7.2,10.0)], ['col1','col2','col3']) 我想添加一个新的字符串列,使其看起来像: 在此之前,rowName中的值都是“xxx”。
myGraph=spark.createDataFrame([(1.3,2.1,3.0),
(2.5,4.6,3.1),
(6.5,7.2,10.0)],
['col1','col2','col3'])
我想添加一个新的字符串列,使其看起来像:
在此之前,rowName中的值都是“xxx”。但我不知道如何将新列值“col1”、“col2”和“col3”添加到行名中?您可以使用内置rand函数和udf辅助函数创建随机整数值1-N,以生成新字符串,如下所示:
val randColumnUDF = udf((rand: Long) => s"X${rand}")
val N = 10000
df.withColumn("rand", randColumnUDF(rand() * N)).show(false)
+----+
|rand|
+----+
|X1 |
|X8 |
|X6 |
|... |
+----+
上面的代码将附加一个1-10000到X之间的随机数,生成值:X1,X23。。。etc如何为每行选择要在rowname中使用的列?@Suresh Hi,我只是将列名作为字符串列放入rowname columnok,然后在每行中放入哪个列名,所有列名串联,或者每行基于任何逻辑都应该有特定的列名?第一个列名在第一行,第二列名称位于第二行中。在这种情况下
val randColumnUDF = udf((rand: Long) => s"X${rand}")
val N = 10000
df.withColumn("rand", randColumnUDF(rand() * N)).show(false)
+----+
|rand|
+----+
|X1 |
|X8 |
|X6 |
|... |
+----+