С помощью pyspark на GCP я иногда получаю сообщения типа
AnalysisException: "Database 'default' not found;"
Из проведенного мною исследования я понимаю, что это относится к таблицам улья. Может быть, я должен явно указать спарку, где находится файл hive.xml
. Я вижу, у меня есть этот файл
./etc/hive/conf.dist/hive-site.xml
и некоторые другие важные файлы:
./usr/local/share/google/dataproc/bdutil/conf/hive-template.xml
./usr/local/share/google/dataproc/bdutil/conf/hive-ha-mixins.xml
./etc/hive-hcatalog/conf.dist/proto-hive-site.xml
Я вхожу в pyspark так же, как и в AWS. Я подключаюсь к кластеру и создаю собственную команду spark-submit
. Это начинается как
export PYTHONPATH=/path/to/my/stuff:$PYTHONPATH
export PYSPARK_PYTHON=/usr/bin/python3
export PYSPARK_DRIVER_PYTHON=/usr/local/bin/ipython3
pyspark --class main --master yarn --deploy-mode client --conf spark.speculation=True
то есть я создаю интерактивный сеанс pyspark с ipython непосредственно на главном узле кластера dataproc.
У меня нет специальных опций по включению улья или его поиску. Я не использую hive явно, я просто читаю паркетные файлы, и все мои SQL-запросы выполняются через интерфейс pyspark, например
df = spark.read.parquet('gs://path/to/my/data')
df.groupBy('something').count().show()
Это неправильный способ создания интерактивного сеанса pyspark в кластере dataproc? Я нашел документацию, например https://cloud.google.com/sdk/gcloud/reference/dataproc/jobs/submit/pyspark, в которой рассказывается, как отправлять задания с вашего ноутбука, но я ничего не видел о запуске интерактивного сеанса в кластере. Я беспокоюсь, что gcloud dataproc jobs submit pyspark
добавляет специальные опции и настройки, которые мне не хватает.