如何使用pyspark连接到hive?
我正在尝试在配置单元中创建一个表。但它正在spark warehouse文件夹中创建一个类似testdb.db的文件夹。当我们存储到MySQL/MongoDB数据库时,如何直接存储在HIVE中如何使用pyspark连接到hive?,hive,pyspark,pyspark-sql,Hive,Pyspark,Pyspark Sql,我正在尝试在配置单元中创建一个表。但它正在spark warehouse文件夹中创建一个类似testdb.db的文件夹。当我们存储到MySQL/MongoDB数据库时,如何直接存储在HIVE中 conf = SparkConf().setAppName("data_import") sc = SparkContext(conf = conf) sqlContext = HiveContext(sc) sqlContext.setConf("spark.sql.shuffle.partitio
conf = SparkConf().setAppName("data_import")
sc = SparkContext(conf = conf)
sqlContext = HiveContext(sc)
sqlContext.setConf("spark.sql.shuffle.partitions", "2")
sqlContext.sql("CREATE DATABASE testdb")
sqlContext.sql("use testdb")
sqlContext.sql("create table daily_revenue(order_date string, daily_revenue float)")
当您在配置单元中创建一个表时,幕后发生的事情是,它将元数据存储在一些关系数据库中,具体取决于为您的环境配置的关系数据库,并且实际数据将存储在HDFS仓库目录(如果该目录是托管表) 同样,当您尝试从配置单元中的Spark创建表时,它将首先创建文件夹.db,然后在此文件夹中创建另一个具有表名的文件夹,该文件夹将数据存储在HDFS上 因此,在您的情况下,应该有
/testdb.db/table
文件夹。及
如果将任何数据加载到此表中,这些数据将显示在表文件夹中
希望能有帮助
问候,
Neeraj不要使用testdb,试着将您的
create
作为testdb的前缀。每日收入
是。我可以看到这个/testdb.db/table。但我在HDFS中看不到这一点。是否需要更改任何配置文件?您已回答了hive CLI的问题。我问过如何使用pyspark连接到hive warehouse。您何时将sqlContext
更改为hive CLI?你试过Pyspark shell的答案吗?
sqlContext.sql("create database if not exists demo")
>>> sqlContext.sql("show tables in demo").show()
+---------+-----------+
|tableName|isTemporary|
+---------+-----------+
+---------+-----------+
sqlContext.sql("create table demo.dummy (id int, name string)")
>>> sqlContext.sql("show tables in demo").show()
+---------+-----------+
|tableName|isTemporary|
+---------+-----------+
| dummy| false|
+---------+-----------+
>>> sqlContext.sql("desc demo.dummy").show()
+--------+---------+-------+
|col_name|data_type|comment|
+--------+---------+-------+
| id| int| null|
| name| string| null|
+--------+---------+-------+