列不是 org.apache.spark.sql.DataFrame 的成员
column is not a member of org.apache.spark.sql.DataFrame
我是 spark 的新手,我正在尝试从 Scala 加入配置单元中存在的两个表
代码:
import org.apache.spark.sql._
import sqlContext.implicits._
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
val csp = hiveContext.sql("select * from csp")
val ref = hiveContext.sql("select * from ref_file")
val csp_ref_join = csp.join(ref, csp.model_id == ref.imodel_id , "LEFT_OUTER")
但是对于上面的连接我得到了错误:
<console>:54: error: value model_id is not a member of org.apache.spark.sql.DataFrame
val csp_ref_join = csp.join(ref, csp.model_id == ref.imodel_id , "LEFT_OUTER")
如果不是哪里出了问题,加入配置单元表的方法是否正确?
还有一个问题……在 Scala 中连接 Hive 表与在 Hive 中连接相同
考虑到性能,哪种方法更好?
使用 hiveContext 在 Scala 中执行此操作是否正确?
提前致谢!!
由于您使用 Scala,因此不能使用点语法。而且它是 ===
而不是 ==
csp.join(ref_file, csp("model_id") === ref_file("icmv_model_id"), "leftouter")
或(如果没有名称冲突):
csp.join(ref_file, $"model_id" === $"icmv_model_id", "leftouter")
或(同上条件):
import org.apache.spark.sql.functions.col
csp.join(ref_file, col("model_id") === col("icmv_model_id"), "leftouter")
我是 spark 的新手,我正在尝试从 Scala 加入配置单元中存在的两个表 代码:
import org.apache.spark.sql._
import sqlContext.implicits._
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
val csp = hiveContext.sql("select * from csp")
val ref = hiveContext.sql("select * from ref_file")
val csp_ref_join = csp.join(ref, csp.model_id == ref.imodel_id , "LEFT_OUTER")
但是对于上面的连接我得到了错误:
<console>:54: error: value model_id is not a member of org.apache.spark.sql.DataFrame
val csp_ref_join = csp.join(ref, csp.model_id == ref.imodel_id , "LEFT_OUTER")
如果不是哪里出了问题,加入配置单元表的方法是否正确?
还有一个问题……在 Scala 中连接 Hive 表与在 Hive 中连接相同 考虑到性能,哪种方法更好? 使用 hiveContext 在 Scala 中执行此操作是否正确?
提前致谢!!
由于您使用 Scala,因此不能使用点语法。而且它是 ===
而不是 ==
csp.join(ref_file, csp("model_id") === ref_file("icmv_model_id"), "leftouter")
或(如果没有名称冲突):
csp.join(ref_file, $"model_id" === $"icmv_model_id", "leftouter")
或(同上条件):
import org.apache.spark.sql.functions.col
csp.join(ref_file, col("model_id") === col("icmv_model_id"), "leftouter")