#python #apache-spark #pyspark #hive
#питон #apache-искра #пыспарк #улей
Вопрос:
Я новичок в spark, и в настоящее время я работаю с базой данных hive, подключающейся с удаленного сервера. Я следовал многим примерам о том, как подключить spark к jdbc hive, и не многие из них работают. Один из них работал с приведенной ниже конфигурацией, однако при извлечении таблицы в фрейм данных spark значения строк являются именами столбцов. Что-то не так с моим запросом или конфигурацией spark?
from pyspark import SparkContext, SparkConf from pyspark.sql import HiveContext, SparkSession spark = SparkSession .builder .master('yarn') .appName('Connect-to-Hive') .config('spark.dynamicAllocation.enabled', 'false') .config('parquet.compression', 'SNAPPY') .enableHiveSupport() .getOrCreate() sqlsUrl = 'jdbc:hive2://{username}@{}:10000/{database}' qryStr = """(SELECT * FROM table_name) as t""" df_channel = spark.read.format('jdbc') .option('url',sqlsUrl) .option('dbtable', qryStr ) .option("user", "{username}") .option("password", "{passw}") .option('UseNativeQuery', 1) .load()
Комментарии:
1. вы используете enablehivesupport при создании sparksession, поэтому можете просто попробовать посмотреть, можете ли вы видеть таблицы в базе данных hive без использования jdbc by
spark.catalog.listTables().show()
. Показывает ли это таблицу, которую вы пытаетесь запросить?2. можете ли вы привести пример ? ваш код кажется прекрасным. Что вы делаете для визуализации своих данных ?
Ответ №1:
Моя искра на самом деле была настроена неправильно, после правильной настройки все таблицы можно читать напрямую без необходимости использования jdbc