我有一个spark sql代码
object MyTest extends App {
val conf = new SparkConf().setAppName("GTPCP KPIs")
val sc = new SparkContext(conf)
val hContext = new org.apache.spark.sql.hive.HiveContext(sc)
val outputDF = hContext.sql("Select field1, field2 from prddb.cust_data")
println("records selected: " + outputDF.count() + "\n")
outputDF.write.mode("append").saveAsTable("devdb.vs_test")
//outputDF.show()
}
问题在于,如果我运行查询
Select field1, field2 from prddb.cust_data
在蜂巢中它给了我大约150万条记录。
但是,通过spark sql我在devdb.vs_test表中没有得到任何输出 println语句打印0。
我正在使用spark 1.5.0
任何帮助都将受到赞赏!!
答案 0 :(得分:0)
你的火花会议看起来没有蜂巢连接。
您需要将hive-site.xml与spark conf或copy hive-site.xml链接到spark conf目录。 Spark无法找到您的hive Metastore(默认情况下是derby数据库),因此我们必须将hive-conf链接到spark conf direcrtory。
最后,要将Spark SQL连接到现有的Hive安装,必须将hive-site.xml文件复制到Spark的配置目录($ SPARK_HOME / conf)。如果您没有现有的Hive安装,Spark SQL仍将运行。
Sudo到root用户,然后将hive-site复制到spark conf目录。
sudo -u root
cp /etc/hive/conf/hive-site.xml /etc/spark/conf