使用pyspark时如何访问配置单元表中的注释?

时间:2019-07-16 02:48:12

标签: python pyspark

当我使用pyspark连接到配置单元时,我想获取表的注释时,我使用了“ DESCRIBE TABLE table_name”,但它不起作用

sql = """(DESCRIBE TABLE table_name) as t"""
jdbcDF = spark.read \
    .format("jdbc") \
    .option("url", "********") \
    .option("dbtable", sql) \
    .option("user", "username") \
    .option("password", "password") \
    .load()

错误: 第1:33行在语句中“ table_name”附近的“(”附近缺少GRPAH_PATH

2 个答案:

答案 0 :(得分:0)

Spark使用Hive作为其基础元存储,因此您只需要使用Spark SQL来查找所需的信息。您也可以将dataframe读入表格以进行进一步分析。您将使用jdbc连接到外部RDBMS ...例如类似SQL Server, Oracle, Redshift, PostgresSQL, etc.

# specify your hive database
spark.sql("use default")

# get hive table stats
spark.sql("DESCRIBE TABLE spark_sql_table").show()
+-------------------+---------+-------+
|           col_name|data_type|comment|
+-------------------+---------+-------+
|  DEST_COUNTRY_NAME|   string|   null|
|ORIGIN_COUNTRY_NAME|   string|   null|
|              count|   bigint|   null|
+-------------------+---------+-------+

# read hive table as spark df
df = spark.table("spark_sql_table")

# confirm schema
df.printSchema()
root
 |-- DEST_COUNTRY_NAME: string (nullable = true)
 |-- ORIGIN_COUNTRY_NAME: string (nullable = true)
 |-- count: long (nullable = true)

# perform analysis
df.show()

答案 1 :(得分:0)

您可以尝试类似的

df = spark.sql("describe extended db.my_tbl") df.where("col_name = 'Table Properties'").collect() 然后会在创建表时为您提供表注释。