pyspark возвращает все строки с именами столбцов при использовании jdbc

#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