【问题标题】:Error doing .show() in spark sql SELECT query在 spark sql SELECT 查询中执行 .show() 时出错
【发布时间】:2018-10-05 18:17:15
【问题描述】:

我用 docker 创建了一个 Hive 容器,我创建了 poke 表,当我在调用 show() 函数后执行 Select 查询时出现此错误。

代码:

from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession, HiveContext


spark = SparkSession \
    .builder \
    .appName("Python Spark SQL Hive integration example") \
    .config("hive.metastore.uris", "thrift://localhost:9083") \
    .enableHiveSupport() \
    .getOrCreate()
spark.sql("SELECT * FROM pokes").show()    

错误是:

18/04/25 11:58:34 信息 SparkContext:创建广播 0 来自 回溯(最近一次通话最后): 文件“/Users/xxxxx/scripts/hive/hive.py”,第 12 行,在 spark.sql("SELECT * FROM pokes").show() 文件“/usr/local/Cellar/apache-spark/2.2.1/libexec/python/lib/pyspark.zip/pyspark/sql/dataframe.py”,第 336 行,显示 文件“/usr/local/Cellar/apache-spark/2.2.1/libexec/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py”, 第 1133 行,在 调用 文件“/usr/local/Cellar/apache-spark/2.2.1/libexec/python/lib/pyspark.zip/pyspark/sql/utils.py”, 第 79 行,在装饰中 pyspark.sql.utils.IllegalArgumentException: u'java.net.UnknownHostException: namenode'

谢谢!

【问题讨论】:

  • 没有SQLContext()?
  • 我认为 SparkSession 管理 SQLContext
  • 我认为 DOCKER/HADOOP 下的一些配置已损坏。它正在尝试使用域名 namenode 连接到主机

标签: python apache-spark hive pyspark


【解决方案1】:

我认为问题不在于 .show(),而是查询本身的执行。

在配置文件中搜索 HDFS (hdfs-site) 并更改 namenode 的值:

<configuration>
 <property>
     <name>dfs.namenode.http-address</name>
     <value>webhdfs://localhost:50070</value>
 </property>
</configuration>

假设您使用的是独立的conf,我使用localhost作为地址,否则您需要找出namenode的名称。此外,它可能只需要 hdfs 而不是 webhdfs 作为地址的前缀。

之后你可以尝试重启namenode:

$HADOOP_HOME/bin/stop.dfs.sh
$HADOOP_HOME/bin/hadoop-daemon.sh stop namenode
$HADOOP_HOME/bin/start.dfs.sh
$HADOOP_HOME/bin/hadoop-daemon.sh start namenode

【讨论】:

    【解决方案2】:

    也许问题不在您的代码中。

    检查您正在使用的 Java JDK 的版本。我所知道的是spark.sql().show() 与 Java JDK 11 不兼容。如果您使用此版本,只需降级到版本 8。并且不要忘记为 JDK 8 正确配置环境变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      相关资源
      最近更新 更多