使用spark访问配置单元数据

时间:2017-05-09 10:53:36

标签: apache-spark hive

我想使用spark访问配置单元数据:

%spark
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)

sqlContext.sql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING)")
sqlContext.sql(LOAD DATA LOCAL INPATH '//filepath' INTO TABLE src)

sqlContext.sql("FROM src SELECT key, value").collect().foreach(println)

然而我收到错误:

  

:4:错误:')'预期,但'('发现。         sqlContext.sql(" FROM src SELECT键,值")。collect()。foreach(println)

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

您应该使用标准SQL语法:

sqlContext.sql("SELECT key, value FROM src").show()

更重要的是,每个sql命令都应该将String作为参数,第二个命令没有""

sqlContext.sql("LOAD DATA LOCAL INPATH '//filepath' INTO TABLE src")

答案 1 :(得分:0)

你能试试吗?

import org.apache.spark.sql.hive.HiveContext
val sqlContext = new HiveContext(sc) # creating hive context
sqlContext.sql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING)")
sqlContext.sql("LOAD DATA LOCAL INPATH '//filepath' INTO TABLE src")
val srcRDD = sqlContext.sql("SELECT key, value FROM src")
srcRDD.collect().foreach(println) # printing the data