使用PySpark从Databricks数据库(hive_metastore)阅读/提取数据

h9a6wy2h  于 2023-05-21  发布在  Spark
关注(0)|答案(2)|浏览(200)

我正在尝试使用PySpark从Databricks Hive_Metastore读取数据。在下面的屏幕截图中,我试图读取位于数据库'nyctaxi'中的名为'trips'的表。
通常情况下,如果此表位于AzureSQL服务器上,我将使用如下代码:

df = spark.read.format("jdbc")\
    .option("url", jdbcUrl)\
    .option("dbtable", tableName)\
    .load()

或者,如果表在ADLS中,我将使用类似于以下的代码:

df = spark.read.csv("adl://mylake.azuredatalakestore.net/tableName.csv",header=True)

可以让我知道如何使用PySpark从下面的Databricks数据库中读取表:

额外的截图我也有帮助

好的,我刚刚意识到我应该问如何从“samples” meta_store中读取表。在任何情况下,我想帮助阅读在“旅行”表从'nyctaxi'数据库请

u5rb5r59

u5rb5r591#

可以使用spark.table("catalog.schema.table")在中访问samples目录。
因此,您应该能够使用以下命令访问该表:

df = spark.table("samples.nyctaxi.trips")

另外请注意,如果您直接在databricks笔记本中工作,则spark会话已经可以作为spark使用-无需获取或创建。

dauxcl2d

dauxcl2d2#

首先,您必须检查是否在Spark Session中启用了HiveSupport。您可以通过以下方式启用此功能

spark = SparkSession \
            .builder \
            .appName("HiveTest") \
            .enableHiveSupport() \
            .getOrCreate()

要验证您是否可以使用

spark.sql("show databases").show()
# This should show you all your hive metastore databases as in Image shared

# To read data in df

df = spark.sql("select * from db_name.table_name")
df.show()

在错误的情况下,您将不得不检查hive.metastore属性配置数据砖环境根据其文档。

相关问题