我通常可以通過使用withColumn
向現有數據集添加新列來獲取新數據集。 但我不知道爲什麼這個案件給錯誤。使用withColumn()將列添加到數據集<Row>給出問題...在運算符中缺少項目
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
已經工作,但該投擲錯誤:
Exception in thread "main" org.apache.spark.sql.AnalysisException: resolved attribute(s) Exer#7 missing from Smoke#47 in operator
!Project [Smoke#47, Exer#7 AS Exer#112];;!Project [Smoke#47, Exer#7 AS Exer#112]
同意@Assaf。 另請參閱[這裏](http://stackoverflow.com/questions/40508489/spark-add-dataframe-column-to-another-dataframe-merge-two-dataframes)。 – pheeleeppoo
..have一直在使用它沒有拉鍊或添加與兩個數據集的索引列...說我能做到這一點...數據集 dswithColAAandTotal = dswithColAA.withColumn(「合計」,dswithColAA.col(colnames [0 ])); \t \t \t \t \t dswithColAAandTotal.show();工作正常給我ColAA和一個計算列Total .. –
Binu
其中dswithColAA是從數據集下面得到的.. DSvaluesonly.createOrReplaceTempView(「tmpTableAA」); String SQLQueryAA =「select * from tmpTableAA」; 數據集 dswithColAA = sqlctx.sql(SQLQueryAA).toDF(); –
Binu