簡體   English   中英

從 HDinsight 集群訪問 Hive 表

[英]Access Hive table from HDinsight cluster

我正在使用 pyspark 訪問我的 HDinsight 集群內的 hive。 當我 go 並查詢 hive 時,它顯示了所有數據庫,但是當我從 spark 查詢時,它只顯示默認數據庫。

我相信它只是 go 並且默認查詢 spark 目錄。

我發現的解決方法是我應該使用 Hive 倉庫連接器從 spark 連接到 hive。

還有其他方法嗎?

代碼

spark = SparkSession \
    .builder \
    .appName("Python Spark SQL Hive integration example") \
    .config("hive.metastore.uris", "thrift://hn0-mytestua.abc.dxbx.internal.cloudapp.net:9083") \
    .config("spark.sql.warehouse.dir", '/hive/warehouse/external') \
    .enableHiveSupport() \
    .getOrCreate()
spark.sql("show databases").show()

如果您不想在 spark 代碼中指定 hive 相關配置,那么您可以簡單地將 hive-site.xml 文件從 $HIVE_HOME/conf 文件夾復制到 $SPARK_HOME/conf 文件夾。

如果無法進行文件復制,則可以在創建SparkSession或啟動 spark 作業以連接到 hive 時使用以下配置。

spark.sql.hive.metastore.jars = $HIVE_HOME/lib/* // No need to specify this if it's already in CLASSPATH
spark.hadoop.hive.metastore.uris = thrift://<host>:9083
spark.sql.hive.metastore.version= <hive version> 

如果您的hive版本與文檔中此處指定的默認版本匹配,則無需指定 Metastore 版本。

Azure HDInsight 提供HWC連接器將hive 與spark 集成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM