通过 Pyspark 查询 Hive 返回空结果

Posted

技术标签:

【中文标题】通过 Pyspark 查询 Hive 返回空结果【英文标题】:Querying Hive via Pyspark return empty result 【发布时间】:2017-04-24 09:03:26 【问题描述】:

我在 AWS EMR 集群上运行 spark 2.1.0(基于以下 -https://aws.amazon.com/blogs/big-data/running-jupyter-notebook-and-jupyterhub-on-amazon-emr/)

我尝试查询一个存在并在远程 HIVE 中包含数据的表。 Spark 正确干扰模式,但表内容为空。有什么想法吗?

import os
import findspark
findspark.init('/usr/lib/spark/')

# Spark related imports
from pyspark.sql import SparkSession
from pyspark import SparkContext

sc = SparkContext.getOrCreate()
spark = SparkSession.builder.config(conf=sc.getConf()).getOrCreate()

remote_hive = "jdbc:hive2://myhost:10000/mydb"
driver = "org.apache.hive.jdbc.HiveDriver"
user="user"
password = "password"

df = spark.read.format("jdbc").\
    options(url=remote_hive, 
            driver=driver, 
            user=user, 
            password=password, 
            dbtable="mytable").load()


df.printSchema()
# returns the right schema
df.count()
0

【问题讨论】:

【参考方案1】:

你可以试试 -

spark\
  .read.format("jdbc")\
  .option("driver", driver)
  .option("url", remote_url)
  .option("dbtable", "mytable")
  .option("user", "user")\
  .option("password", "password")
  .load()

【讨论】:

相同结果 - 空表 (df.count() = 0)

以上是关于通过 Pyspark 查询 Hive 返回空结果的主要内容,如果未能解决你的问题,请参考以下文章

PySpark 和 HIVE/Impala

从 PySpark 查询 Hive 表时出错

在 Hive 或 Pyspark 中查询以获取每个星期日和星期六的日期

PySpark - RDD 到 JSON

Hive:通过 Hue 插入表格产生的文件数量与 pyspark 不同

查询同一张表时,spark sql 返回空值,但配置单元和 impaly 获取正常数据?