object Test {
def main(array: Array[String]): Unit = {
val conf = new SparkConf().setAppName("测试测试")
//.setMaster("spark://192.168.2.232:7077")
// .setJars(Array[String]("file://D:/ideaWorkspace/GDBigDAtaSpark_2/out/artifacts/GDBigDAtaSpark_2_jar/GDBigDAtaSpark_1.jar"))
val sc = new SparkContext(conf)
val sparkSQL = new SQLContext(sc)
val schema = StructType(
StructField("id", StringType, false) ::
StructField("name", StringType, false) :: Nil
)
val rdd = sc.textFile("hdfs://192.168.2.232:8020/user/hive/warehouse/t_test").map(x => x.split("\u0001")).map(r => Row(r(0), r(1)))
sparkSQL.createDataFrame(rdd, schema).registerTempTable("t_test")
val df = sparkSQL.sql("select * from t_test")
//val df = sparkSQL.value.sql("select * from t_test")
df.foreach(row => {
println(s"主键=${row(0).toString}")
import sparkSQL.implicits._
sparkSQL.sql(s"select * from t_test where id=${row(0).toString}")
})
}
}各位spark大神帮看看, 我在DataFrame遍历时想读取另一个表的数据,但SQLContext会报空指针,请问这该如何解决。
sparkSQL.sql(s"select * from t_test where id=${row(0).toString}")
这一行 会报空指异常。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货