Не могу прочитать ИЛИ C транзакционную таблицу в Spark. Видя пустой фрейм данных - PullRequest
1 голос
/ 28 января 2020

У нас есть транзакционная таблица с форматом файла ИЛИ C и сжатием ZLiB. Это внутренний стол. При чтении через Hive CLI я могу читать таблицу. Но при выполнении runnnig через spark sql отображается таблица со всеми столбцами и 0 строками. Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 07 февраля 2020

Этого также можно добиться с помощью Pyspark, но вы должны добавить к нему несколько конфигураций, ниже приведен пример кода, чтобы сделать то же самое в Pyspark

from pyspark.sql import  *
from pyspark_llap import HiveWarehouseSession
from pyspark.sql import SparkSession
from pyspark.sql.rdd.RDD
from pyspark.sql.types import *
from pyspark.sql import Window
from pyspark.sql.functions import *
from pyspark.sql.functions import *

spark = SparkSession.builder \
                   .appName("appname") \
                   .enableHiveSupport() \
                   .getOrCreate()

hive = HiveWarehouseSession.session(spark).build()
sample = hive.executeQuery("""select * from <schema.tablename>""")
sample.show()`

, чтобы выполнить вышеупомянутое с помощью spark-submit add Конфигурация, как показано ниже

spark-submit --jars /usr/hdp/3.1.0.0-78/hive_warehouse_connector/hive-warehouse-connector-assembly-1.0.0.3.1.0.0-78. jar --py-files /usr/hdp/current/hive_warehouse_connector/pyspark_hwc-1.0.0.3.1.0.0-78.zip --conf spark. sql .hive.hiveserver2.jdb c .url = "jdb c URL; serviceDiscoveryMode = zooKeeperHA; zooKeeperNamespace = hs2ActivePassiveHA" --conf spark.had oop .hive.llap.daemon.service.hosts = "@ llap0" --conf spark.datasource.hive.warehouse .load.staging.dir = "/ tmp" --conf spark.had oop .hive.zookeeper.quorum = "все URL-адреса zookeeper" --conf spark. sql .hive.hiveserver2.jdb c. url.principal = "URL для соединения JDB C" --conf spark.security.credentials.hiveserver2.enabled = "true" TestPysparkJob.py

1 голос
/ 04 февраля 2020

Это можно сделать с помощью scala spark, используя Hive Ware Connector (я использую Hortonworks). Используется Jar-файл "hive-warehouse-connector_2.11-1.0.0.3.1.0.0-78.jar".

Пример кода:

import com.hortonworks.hwc.HiveWarehouseSession
import com.hortonworks.spark.sql.hive.llap.HiveWarehouseBuilder
val conf = new SparkConf()
val spark = SparkSession.builder().appName(AppName).enableHiveSupport().getOrCreate()
spark.conf.set("spark.sql.hive.hiveserver2.jdbc.url","//your hive url")
val hive = HiveWarehouseBuilder.session(spark).build()
val res = hive.table("db.tablename")
res.show(20,False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...