小编You*_*man的帖子

将列中的列从一个数据帧添加到另一个数据帧

我有两个具有相同行数的DataFrame,但列数根据来源不同而且是动态的.

第一个DataFrame包含所有列,但第二个DataFrame被过滤和处理,其中没有所有其他列.

需要从第一个DataFrame中选择特定列,并添加/合并第二个DataFrame.

val sourceDf = spark.read.load(parquetFilePath)
val resultDf = spark.read.load(resultFilePath)

val columnName :String="Col1"
Run Code Online (Sandbox Code Playgroud)

我尝试以几种方式添加,在这里我只是给了一个......

val modifiedResult = resultDf.withColumn(columnName, sourceDf.col(columnName))

val modifiedResult = resultDf.withColumn(columnName, sourceDf(columnName))
val modifiedResult = resultDf.withColumn(columnName, labelColumnUdf(sourceDf.col(columnName)))
Run Code Online (Sandbox Code Playgroud)

这些都不起作用.

你可以帮我解决这个问题,将第一个DataFrame的第二个DataFrame合并/添加到第一个DataFrame.

给出的示例不是我需要的确切数据结构,但它将满足我解决此问题的要求.

输入输出样本:

Source DataFrame:
+---+------+---+
|InputGas|
+---+------+---+
|1000|
|2000|
|3000|
|4000|
+---+------+---+

Result DataFrame:
+---+------+---+
| Time|CalcGas|Speed|
+---+------+---+
|  0 | 111| 1111|
|  0 | 222| 2222|
|  1 | 333| 3333|
|  2 | 444| 4444|
+---+------+---+

Expected Output:
+---+------+---+
|Time|CalcGas|Speed|InputGas|
+---+------+---+---+
|  0|111 | 1111 …
Run Code Online (Sandbox Code Playgroud)

scala dataframe apache-spark

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

apache-spark ×1

dataframe ×1

scala ×1