Записи фильтра клея AWS из исходного или динамического фрейма данных

#mysql #aws-glue #aws-glue-data-catalog

Вопрос:

Я хотел бы получить подмножество записей в задании AWS Glue из таблицы MySQL в каталоге данных. Это было бы особенно полезно при разработке сценария задания для ограничения количества записей, которые необходимо обработать.

Моей первой попыткой была фильтрация по id столбцу с предикатом pushdown. Однако я подозреваю, что таблицы MySQL в каталоге данных не разделены и не поддерживают эту функцию. На языке python:

 from awsglue.context import GlueContext
from pyspark.context import SparkContext

sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
dy_f = glueContext.create_dynamic_frame.from_catalog(
    database="db",
    table_name="table with 1000 records",
    push_down_predicate="id in (1, 2, 3)"
)
dy_f.count() # returns 1000
 

Есть ли способ ограничить количество записей, извлеченных из источника таблицы MySQL? Если не из источника, как я могу отфильтровать динамический фрейм данных по подмножеству записей?

Комментарии:

1. Вы пытаетесь просто установить случайное ограничение? Если да, вы можете попробовать head().

2. Случайность хорошо сработала бы, да. Спасибо! Мне также любопытно, есть ли способ фильтровать по какому-либо предикату.

3. реквизит = {«драйвер»:» пожалуйста, замените имя драйвера «} предикаты = [ «DEST_COUNTRY_NAME =» Швеция «ИЛИ ORIGIN_COUNTRY_NAME = «Швеция»», «DEST_COUNTRY_NAME =» Ангилья «ИЛИ ORIGIN_COUNTRY_NAME = «Ангилья»»] spark.read.jdbc(url, имя таблицы, предикаты=предикаты,свойства=реквизит).показать() spark.read.jdbc(url,имя таблицы,предикаты=предикаты, свойства=реквизит).rdd.getNumPartitions()