如何使用pyspark连接到Hive?

pdtvr36n  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(523)

我正在尝试在配置单元中创建一个表。但它正在spark warehouse文件夹中创建一个类似testdb.db的文件夹。当我们存储到mysql/mongodb数据库时,如何直接存储在hive中。

  1. conf = SparkConf().setAppName("data_import")
  2. sc = SparkContext(conf = conf)
  3. sqlContext = HiveContext(sc)
  4. sqlContext.setConf("spark.sql.shuffle.partitions", "2")
  5. sqlContext.sql("CREATE DATABASE testdb")
  6. sqlContext.sql("use testdb")
  7. sqlContext.sql("create table daily_revenue(order_date string, daily_revenue float)")
5hcedyr0

5hcedyr01#

  1. sqlContext.sql("create database if not exists demo")
  2. >>> sqlContext.sql("show tables in demo").show()
  3. +---------+-----------+
  4. |tableName|isTemporary|
  5. +---------+-----------+
  6. +---------+-----------+
  7. sqlContext.sql("create table demo.dummy (id int, name string)")
  8. >>> sqlContext.sql("show tables in demo").show()
  9. +---------+-----------+
  10. |tableName|isTemporary|
  11. +---------+-----------+
  12. | dummy| false|
  13. +---------+-----------+
  14. >>> sqlContext.sql("desc demo.dummy").show()
  15. +--------+---------+-------+
  16. |col_name|data_type|comment|
  17. +--------+---------+-------+
  18. | id| int| null|
  19. | name| string| null|
  20. +--------+---------+-------+
展开查看全部
ttvkxqim

ttvkxqim2#

当您在配置单元中创建一个表时,场景后面发生的事情是,它将元数据存储在某个关系数据库中,具体取决于为您的环境配置的关系数据库,并且实际数据将存储在hdfs仓库目录中(如果该目录是托管表)。
类似地,当您尝试从配置单元中的spark创建表时,它将首先创建folder.db,然后在此文件夹中创建另一个具有表名的文件夹,该文件夹将数据存储在hdfs上。
所以在你的情况下,你应该 <warehouse_dir>/testdb.db/table 文件夹。如果您将任何数据加载到此表中,这些数据将出现在表文件夹中。
希望有帮助。
当做,
尼拉吉

相关问题