Мы хотели бы использовать задание AWS-Glue для фильтрации сообщений JSON в корзине s3.
Вот пример JSON:
{ "property": {"subproperty1": "A", "subproperty2": "B" }}
{ "property": {"subproperty1": "C", "subproperty2": "D" }}
Мы хотим фильтровать по subproperty1 in ["A", "B"]
. Вот что мы пытаемся:
applyFilter1 = Filter.apply(
frame = datasource0,
f = lambda x: x["property.subproperty1"] in ["A", "B"]
)
Затем вывод записывается таким образом, что новое ведро s3 выглядит следующим образом:
datasink2 = glueContext.write_dynamic_frame.from_options(
frame = applyFilter1,
connection_type = "s3",
connection_options = {"path": "s3://<my-s3-location>"},
format = "json",
transformation_ctx = "datasink2"
)
К сожалению, результирующий файл пуст. Есть идеи? Поддерживается ли фильтрация подобных вложенных выражений в AWS Glue?
f = lambda x: x["property"]["subproperty1"] in ["A", "B"]
решает проблему. - person user152468   schedule 08.02.2018