【发布时间】:2020-04-16 10:18:05
【问题描述】:
我有一个在一些虚拟机上运行的 Databricks 集群。我的组织有一个 Hadoop 集群,其中包含我想要的一堆数据。我无法访问 Hadoop 集群,只有一个 JDBC URL(我的所有权限都已整理,他们只给了我一个 URL)。
我可以在本地机器(Dbeaver)上打开一个数据库管理工具,并成功查询Hive表。
但是,我正在努力使用 Databricks 和 PySpark 查询 Hive 表。似乎要为 HiveContext 设置连接字符串,我通常会将其写入 hive-site.xml 文件中。但是 Databricks 没有给我这个选项。
我正在使用 Hive 2.1.1 和 Databricks 6.4(包括 Apache Spark 2.4.5、Scala 2.11)
现在我不知道如何简单地连接到我的 Hive 数据库。
# Spark context sc is implicit in Databricks
hive_context = spark.HiveContext(sc)
# I want to be able to do something like
df = hive_context.sql("SELECT...")
【问题讨论】:
-
@thebluephantom 我已经按照本教程进行操作,A) 它没有提供有关所涉及的 pyspark 语法的任何信息,B) 由于驱动程序兼容性,我遇到了错误;本教程假定 hive 数据库存储在 Azure 中,并为该用例指定驱动程序。我不知道如何确定合适的驱动程序。你知道如何解决这个问题吗?
-
系统管理员会这样做。我实际上正在安装一个新系统,但没有配置单元。在 spark 2 中它只是一个会话参数,应该全部设置...
-
酷......嗯,我不完全理解你对系统管理员的意思。但也许我会问......在玩了之后我发现 Databricks UI 让我为 HiveContext 指定会话参数。有问题的参数是 spark.hadoop.javax.jdo.option.ConnectionDriverName... 这是上面的教程指定 SQl 驱动程序的地方。鉴于我知道我的 ConnectionURL 是否有可能弄清楚 ConnectionDriverName 应该是什么?
-
我可能误解了。
标签: pyspark hive databricks