我從下面code.Each數據幀具有相同的列數和列名如何使用標識與名稱相同的兩個數據幀的列沒有給予別名他們
數據f2的獲取2個數據幀的.csv是
c1,c2,c3,c4
k1,i,aa,k
k5,j,ee,l
數據f1.csv是
c1,c2,c3,c4
k1,a,aa,e
k2,b,bb,f
k3,c,cc,g
k4,d,dd,h
我與下面的數據讀出上述兩個數據幀
val avro_inp = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load(f1.csv)
val del_inp = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load(f2.csv)
我試圖與dataframename.columnname 它拋出的SQL異常如下 訪問各個列是我使用
avro_inp.join(del_inp, Seq("c1", "c3"), "outer")
.withColumn("c2",when(del_inp.col(colName="c2").isNotNull,del_inp.col(colName ="c2")).otherwise(avro_inp.col(colName = "c2")))
.withColumn("c4",when(avro_inp.col(colName="c4").isNull,del_inp.col(colName ="c4")).otherwise(avro_inp.col(colName = "c4")))
.drop(del_inp.col(colName="c2")).drop(del_inp.col(colName="c4")).show()
代碼有什麼辦法,我可以做到不增加別名來在columns.I我得到下面的錯誤與上面的代碼
Exception in thread "main" org.apache.spark.sql.AnalysisException: Reference 'c4' is ambiguous, could be: c4#3, c4#7.;
at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolve(LogicalPlan.scala:287)
at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolveChildren(LogicalPlan.scala:171)
什麼是錯誤?它在我的地方完美運行。並更新與示例輸入以及 –
我收到上述異常 – sri
我建議你改變第二個表的列名 –