在spark中使用hive数据库

epggiuax  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(391)

我是spark的新手,尝试使用hortonworks沙盒在tpcds基准表上运行一些查询。http://www.tpc.org/tpcds/ 在沙盒上通过shell或配置单元视图使用配置单元时没有问题。问题是,如果我想使用spark,我不知道如何连接到数据库。如何使用spark中的配置单元数据库来运行查询?到目前为止,我知道的唯一解决方案是手动重建每个表,并使用下面的scala代码在其中加载数据,这不是最佳解决方案。

scala> val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
scala> sqlContext.sql("CREATE TABLE IF NOT EXISTS employee(id INT, name STRING, age INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'")
scala> sqlContext.sql("LOAD DATA LOCAL INPATH 'employee.txt' INTO TABLE employee")
scala> val result = sqlContext.sql("FROM employe SELECT id, name, age")
scala> result.show()

我也读了一些关于hive-site.xml的文章,但我不知道在哪里可以找到它,也不知道要对它做什么更改才能连接到数据库。

iecba09b

iecba09b1#

使用spark和hivecontext时,不需要连接到特定的数据库。
您只需将“hive site.xml”文件复制到spark conf文件夹(也可以创建一个符号链接)。

cp $HIVE_HOME/conf/hive-site.xml $SPARK_HOME/conf/

然后,在spark中,您可以这样做(我不是scala用户,所以语法可能是错误的):

val hc = new org.apache.spark.sql.hive.HiveContext(sc)
val result = hc.sql("SELECT col1, col2, col3 FROM dbname.tablename")
result.show()

相关问题