通过 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 返回空结果的主要内容,如果未能解决你的问题,请参考以下文章
在 Hive 或 Pyspark 中查询以获取每个星期日和星期六的日期