sparksql输出数据帧没有记录

时间:2018-04-12 07:40:43

标签: scala apache-spark apache-spark-sql

我有一个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

任何帮助都将受到赞赏!!

1 个答案:

答案 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