livy открыть файл, добавленный из hadoop в контекст партии [duplicate]

Кажется, вы путаете mysql_query с mysqli_query. Первый принимает оператор sql как первый параметр, в то время как последний ожидает идентификатор ссылки (созданный Mysqli :: connect) в качестве первого параметра и оператор как второй.

Эти два расширения не совместимы друг с другом. Я предлагаю вам выбрать один, прочитать страницы руководства о том, как подключиться, выполнить запросы и т. Д., И забыть другое. В результате, mysqli является более функциональным, но более сложным в результате.

5
задан lucemia 22 January 2016 в 06:19
поделиться

2 ответа

Доступ к файлам, доступным через SparkContext.addFile--files), можно получить через SparkFiles. Он предоставляет два метода:

  • getDirectory() - возвращает корневой каталог для распределенных файлов
  • get(filename) - возвращает абсолютный путь к файлу

Я не уверен, существуют ли какие-то ограничения Dataproc, но что-то вроде этого должно работать нормально:

from pyspark import SparkFiles

with open(SparkFiles.get('test.yml')) as test_file:
    logging.info(test_file.read())
10
ответ дан zero323 15 August 2018 в 19:57
поделиться
  • 1
    он работает, спасибо! Примечания: SparkFiles.get возвращает путь к файлу вместо файла obj !! – lucemia 22 January 2016 в 08:49

Да, Шагун прав.

В принципе, когда вы отправляете искровое задание, которое искроет, оно не сериализует файл, который вы хотите обработать каждому работнику. Вам нужно будет сделать это самостоятельно.

Как правило, вам придется помещать файл в общую файловую систему, такую ​​как HDFS, S3 (amazon) или любую другую DFS, к которой могут обращаться все рабочие. Как только вы это сделаете, и укажите место назначения файла в своем искровом сценарии, искровое задание сможет читать и обрабатывать по вашему желанию.

Однако, сказав это, копирование файла в тот же назначение во ВСЕХ ваших работников и файловая структура мастера также работают. Exp, вы можете создавать папки, такие как /opt/spark-job/all-files/ во всех искровых узлах, rsync файл для всех них, а затем вы можете использовать файл в своем искровом скрипте. Но, пожалуйста, не делайте этого. DFS или S3 лучше, чем этот подход.

0
ответ дан Winston Chen 15 August 2018 в 19:57
поделиться
  • 1
    спасибо, поэтому, когда я могу использовать --files args ?? – lucemia 22 January 2016 в 07:21
  • 2
    application-jar: путь к объединенной банке, включая ваше приложение и все зависимости. URL должен быть глобально видимым внутри вашего кластера, например, путь hdfs: // или путь file: //, который присутствует на всех узлах. из spark.apache.org/docs/latest/submitting-applications.html – Winston Chen 22 January 2016 в 08:18
Другие вопросы по тегам:

Похожие вопросы: