PySpark Hive 查询未显示输出

Posted

技术标签:

【中文标题】PySpark Hive 查询未显示输出【英文标题】:PySpark Hive queries aren't showing output 【发布时间】:2016-08-01 15:08:09 【问题描述】:

我能够使用 pyspark 和 hivecontext 创建、删除、修改表。我以字符串格式加载了一个包含我要发送的命令的列表,并将它们传递给这个函数:

def hiveCommands(commands, database):
    conf = SparkConf().setAppName(database + 'project').setMaster('local')
    sc = SparkContext(conf=conf)
    df = HiveContext(sc)
    f = df.sql('use ' + database)
    for command in commands:
        f = df.sql(command)
        f.collect()

它可以很好地进行维护,但我正试图深入分析,当我尝试发送诸如“描述表”之类的命令时,我看不到任何输出。

我只是它接受命令并执行它而没有任何错误,但我看不到查询的实际输出是什么。我可能需要弄乱我的 .profile 或 .bashrc,不太确定。有点像 Linux 新手。任何帮助将不胜感激。

【问题讨论】:

为什么会有任何输出?这里没有单一的方法可以产生它。 好吧,我在循环结束时尝试了“print f”,但它没有产生任何结果,所以我想也许需要一种特殊的方法。 我建议回到文档检查 SQLContext.sql 到底在做什么。那里没有什么可以打印的。 【参考方案1】:

调用show方法查看结果:

for command in commands:
    df.sql(command).show()

【讨论】:

以上是关于PySpark Hive 查询未显示输出的主要内容,如果未能解决你的问题,请参考以下文章

从 PySpark 查询 Hive 表时出错

从 PySpark 查询远程 Hive Metastore

通过 Pyspark 查询 Hive 返回空结果

发生异常:pyspark.sql.utils.AnalysisException '必须使用 writeStream.start();;\nkafka' 执行带有流式源的查询

将 sql server jar 添加到 pyspark 的类路径后无法查询 hive

在pyspark中按行连接字符串