Как я могу подключиться к улью с помощью pyspark?

Я пытаюсь создать таблицу в HIVE. Но он создает папку, например testdb.db, внутри папки spark-warehouse. Как я могу напрямую хранить в HIVE, как мы храним в базах данных MySQL/MongoDB.

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)")

person Krishna    schedule 22.01.2018    source источник
comment
Вместо use testdb попробуйте поставить перед create префикс testdb.daily_revenue.   -  person Bala    schedule 22.01.2018


Ответы (2)


Когда вы создаете таблицу в HIVE, то за сценой происходит то, что она сохраняет метаданные в некоторой реляционной базе данных в зависимости от того, какая из них настроена для вашей среды, и фактические данные будут храниться в каталоге хранилища HDFS, если это управляемая таблица.

Точно так же, когда вы пытаетесь создать таблицу из Spark в HIVE, она сначала создаст папку .db, а внутри этой папки создаст другую папку с именем таблицы, которая, в свою очередь, сохранит данные в HDFS.

Итак, в вашем случае у вас должна быть папка <warehouse_dir>/testdb.db/table. и если вы загрузите какие-либо данные в эту таблицу, они будут присутствовать в папке таблицы.

Надеюсь, поможет.

С уважением,

Нирадж

person neeraj bhadani    schedule 22.01.2018
comment
Да. Я вижу этот каталог ‹warehouse_dir›/testdb.db/table. Но я не вижу этого в HDFS. Нужно ли менять какие-либо файлы конфигурации? - person Krishna; 22.01.2018

person    schedule
comment
Вы ответили за Hive CLI. Я спросил, как я могу подключиться к складу улья с помощью pyspark. - person Krishna; 24.01.2018
comment
Когда вы изменили sqlContext на Hive CLI? Вы пробовали ответ в оболочке Pyspark? - person Bala; 24.01.2018