使用withColumn()将数据列添加到数据集<row> ..在运算符!项目中缺少问题...

时间:2017-03-01 08:57:00

标签: apache-spark dataset apache-spark-sql

我可以通过使用withColumn向现有数据集添加新列来获取新数据集。 但我不确定为什么这种情况会给出错误。

Dataset<Row> inputDSAAcolonly = inputDSAA.select(colNameA);
Dataset<Row> inputDSBBcolonly = inputDSBB.select(colNameB);
inputDSBBcolonly.withColumn(colNameA, inputDSAAcolonly.apply(colNameA)).show();

其中inputDSSAAcolonly

+----+
|Exer|
+----+
|Some|
|None|
|None|
|None|

inputDSSBBColonly

+-----+
|Smoke|
+-----+
|Never|
|Regul|
|Occas|
|Never|

数据集中基本上是单列。

我需要一个并排2列的DS。 withColumn已经有效,但这个错误:

  

线程中的异常&#34; main&#34; org.apache.spark.sql.AnalysisException:   已解决的属性操作员的烟雾#47缺少排放#7   !项目[Smoke#47,Exer#7 AS Exer#112] ;;项目[Smoke#47,Exer#7 AS   EXER#112]

2 个答案:

答案 0 :(得分:1)

您基本上是在尝试加入这两个数据集。

withColumn适用于对数据框列进行操作的数据框。您正尝试在不同的数据帧上执行操作。

如果确实问题与您的代码一样简单,那么您可以选择两者并在使用两者时执行相关操作。否则你需要进行连接

答案 1 :(得分:0)

ActiveCell.Offset(1, 0).Select