我在azure中使用hortonworks沙盒和spark 1.6。我有一个用tpc-ds样本数据填充的hive数据库。我想从外部文件读取一些sql查询,并在spark的配置单元数据集上运行它们。我使用spark中的hive数据库来完成这个主题,它只是在我的数据集中使用了一个表,它也在spark中再次编写了sql查询,但是我需要定义一个完整的数据集作为我的源来查询它,我想我应该使用dataframes,但是我不确定,也不知道怎么做!我还想从外部.sql文件导入sql查询,不要再写查询了!你能指导我怎么做吗?非常感谢,贝斯特!
1条答案
按热度按时间brc7rcf01#
spark可以直接从配置单元表中读取数据。您可以使用spark创建、删除配置单元表,甚至可以通过spark执行所有与配置单元hql相关的操作。为此,你需要使用Spark
HiveContext
来自spark文档:spark hivecontext提供了基本sqlcontext提供的功能的超集。其他特性包括使用更完整的hiveql解析器编写查询的能力、对配置单元udf的访问以及从配置单元表读取数据的能力。要使用hivecontext,不需要现有的配置单元设置。
有关更多信息,请访问spark文档
为了避免在代码中编写sql,可以使用属性文件,在其中可以放置所有配置单元查询,然后可以在代码中使用键。
请参见下面spark hivecontext的实现和spark scala中属性文件的使用。
属性文件中的条目:
运行此作业的spark submit命令:
注意:属性文件位置应该是hdfs位置。