Ошибка при выполнении .show () в запросе spark sql SELECT - PullRequest
0 голосов
/ 25 апреля 2018

Я создал контейнер Hive с докером, я создал таблицу poke, и у меня возникает эта ошибка, когда я выполняю запрос Select после вызова show ().

Код:

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 INFO 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, in deco pyspark.sql.utils.IllegalArgumentException: u'java.net.UnknownHostException: namenode '

Спасибо!

1 Ответ

0 голосов
/ 25 апреля 2018

Не думаю, что проблема в .show (), а в выполнении самого запроса.

Найдите файл конфигурации для HDFS (hdfs-site) и измените значение для namenode:

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

Я использовал localhost в качестве адреса, предполагая, что вы используете автономный conf, иначе вам нужноузнать имя наменода.Также может потребоваться 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...