我用pyspark创建的数据库有问题:
from pyspark import SparkContext,SparkConf
from pyspark.sql import SQLContext, SparkSession, HiveContext
conf = SparkConf().set("spark.jars.packages","org.mongodb.spark:mongo-spark-connector_2.11:2.3.2")
spark = SparkSession.builder \
.appName("test") \
.getOrCreate()
df = spark.read.option("multiline", "true").json("hdfs://sandbox-hdp.hortonworks.com:8020/user/maria_dev/output2.json")
#Database on Hive
spark.sql("create database testdb")
print('Voici le Dataframe : ', df)
df.write.mode("overwrite").saveAsTable("testdb.test3")
spark.sql("SHOW DATABASES").show()
df = spark.sql("SELECT * FROM testdb.test3")
df.show()
这段代码没有任何错误,但是当我进入ambari界面时,我看不到我的数据库:只有“default”和“foodmart”。当在shell中使用:
spark.sql("SHOW DATABASES").show()
df = spark.sql("SELECT * FROM testdb.test3")
我可以看到我的数据库及其内容如下:
+---------+
|namespace| +---------+ | default| | testdb| +---------+
我该怎么做才能在hive上看到我的数据库并在zeppelin上使用它。
我尝试使用maria_dev和root。我尝试重新启动hive。
1条答案
按热度按时间4c8rllxm1#
因此,在创建
SparkSession
时没有设置.enableHiveSupport()
。当前,数据库存储在默认的data_warehouse位置。无论何时启动shell,它都会从该data_warehouse(您保存的表)读取数据。因此,要将数据保存到hive中,您可以执行以下操作: