Относительный путь в абсолютном исключении URI при доступе к DynamoDB через каталог данных Glue в PySpark, работающем в EMR - PullRequest
1 голос
/ 25 апреля 2019

Я выполняю приложение pyspark в AWS EMR, которое настроено на использование каталога данных AWS Glue в качестве метасторского хранилища. У меня есть настройка таблицы в AWS Glue, которая указывает на таблицу DynamoDB. И теперь в моем скрипте pyspark я пытаюсь получить доступ к таблице Glue. Я могу сделать show tables и могу видеть таблицу склеивания. Но когда я пытаюсь сделать запрос к таблице, я получаю исключение ниже

pyspark.sql.utils.AnalysisException: u'java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: arn:aws:dynamodb:<region>:<acct_id>:table/DDBTABLE;'

Мой запрос в скрипте pyspark:

spark.sql("select * from ddbtable").show()

Не удалось найти хорошую ссылку на это. Я вижу людей, говорящих о проблеме с spark.sql.warehouse.dir. Но не уверен, как это связано с каталогом данных клея. Любые входы?

1 Ответ

1 голос
/ 03 мая 2019

Связался с AWS Tech, и, очевидно, это проблема EMR (по состоянию на 5.23.0) при использовании каталога данных Glue и доступе к таблице Glue, которая подключается к DynamoDB.Они все еще работают над этим и тем временем предоставили обходной путь ниже.

Отредактируйте файл свойств таблицы Glue, включив его ниже,

update: Свойство Location для некоторого фиктивногоРасположение S3 так, чтобы оно имело форму - s3: // dummy-path

add: Добавить ниже специфичную для DynamoDB информацию под параметрами,

"dynamodb.table.name": "ddb-table",
"dynamodb.column.mapping": "col:col",
"storage_handler": "org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler"

Для обновлениятаблица клеев см. здесь

...