【发布时间】:2017-10-31 05:30:52
【问题描述】:
我有两个行数相同的 DataFrame,但列数不同,并且根据来源是动态的。
第一个 DataFrame 包含所有列,但第二个 DataFrame 被过滤和处理,没有其他所有列。
需要从第一个 DataFrame 中选择特定列并与第二个 DataFrame 添加/合并。
val sourceDf = spark.read.load(parquetFilePath)
val resultDf = spark.read.load(resultFilePath)
val columnName :String="Col1"
我尝试了几种添加方式,这里我只是给出几个....
val modifiedResult = resultDf.withColumn(columnName, sourceDf.col(columnName))
val modifiedResult = resultDf.withColumn(columnName, sourceDf(columnName))
val modifiedResult = resultDf.withColumn(columnName, labelColumnUdf(sourceDf.col(columnName)))
这些都不起作用。
您能否帮我将列从第一个 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 |1000|
| 0|222 | 2222 |2000|
| 1|333 | 3333 |3000|
| 2|444 | 4444 |4000|
+---+------+---+---+
【问题讨论】:
标签: scala apache-spark dataframe