我从下面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
我建议你改变第二个表的列名 –