#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()