2017-08-16 90 views
1
val rdd = sc.parallelize(Seq(("vskp", Array(2.0, 1.0, 2.1, 5.4)),("hyd",Array(1.5, 0.5, 0.9, 3.7)),("hyd", Array(1.5, 0.5, 0.9, 3.2)),("tvm", Array(8.0, 2.9, 9.1, 2.5)))) 
val df1= rdd.toDF("id", "vals") 
val rdd1 = sc.parallelize(Seq(("vskp","ap"),("hyd","tel"),("bglr","kkt"))) 
val df2 = rdd1.toDF("id", "state") 
val df3 = df1.join(df2,df1("id")===df2("id"),"left") 

加入操作工作正常 但是当我再次使用DF2我面临的悬而未决的属性错误如何解决AnalysisException:在星火解决属性(S)

val rdd2 = sc.parallelize(Seq(("vskp", "Y"),("hyd", "N"),("hyd", "N"),("tvm", "Y"))) 
val df4 = rdd2.toDF("id","existance") 
val df5 = df4.join(df2,df4("id")===df2("id"),"left") 

ERROR: org.apache.spark.sql.AnalysisException: resolved attribute(s)id#426

+0

这很可能与https://issues.apache.org/jira/browse/SPARK-10925有关,即id列 –

+0

的命名不明确,但在第一种情况下它的工作正常。我也提到这个参考。我试图将df4中的id重命名为id_new。仍然无法解决错误。与JAVARDD有关的血统问题吗?我试着保留检查站。但仍然是同样的错误 – Rajita

回答

相关问题