У меня есть данные в S3, которые разбиты по категориям и дате следующим образом:
s3://mybucket/category=1/date=2018-08-30/data1.json
s3://mybucket/category=1/date=2018-08-31/data2.json
s3://mybucket/category=2/date=2018-08-30/data3.json
s3://mybucket/category=2/date=2018-08-31/data4.json
После запуска искателя в таблице метаданных у меня есть два ключа секционирования: один для category
, другой для date
. Я хочу получить разделы, которые соответствуют определенным ключам, используя GetPartitions API , поэтому я начал экспериментировать с CLI AWS. Если я запускаю эту команду:
aws glue get-partitions --database-name mydb --table-name mytable --expression "category=1" --region us-west-2
Я успешно получил раздел, как и ожидалось. Однако я попробовал следующую команду:
aws glue get-partitions --database-name mydb --table-name mytable --expression "category=1 AND date=2018-08-30" --region us-west-2
и ответ был
Произошла ошибка (InvalidInputException) при вызове
Операция GetPartitions: неподдерживаемое выражение '2018 - 08 - 30'
Другая команда, выдавшая эту ошибку, была
aws glue get-partitions --database-name mydb --table-name mytable --expression category=1\ AND\ date=2018-08-30 --region us-west-2
Я также попытался изменить вызов с помощью следующей команды:
aws glue get-partitions --database-name mydb --table-name mytable --expression "category=1 AND date=2018\-08\-30" --region us-west-2
, который дал мне ошибку
Произошла ошибка (InvalidInputException) при вызове операции GetPartitions: лексическая ошибка в строке 1, столбец 35. Обнаружено: "\" (92), после: ""
Может ли API GetPartitions обрабатывать выражения для разделов, содержащих дефисы? Если да, то каков правильный синтаксис?