Как работать с пустой таблицей из каталога данных Glue в pyspark - PullRequest
0 голосов
/ 28 января 2019

Я бы хотел выполнить SparkSQL на SageMaker с помощью AWS Glue, но пока не получилось.

Я хочу параметризовать Клеевое задание, поэтому я хочу, чтобы оно было приемлемым длядоступ к пустым таблицам.Однако, когда метод glueContext.create_dynamic_frame.from_catalog снабжен пустой таблицей, возникает ошибка.

Вот код, который вызывает ошибку:

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job

glueContext = GlueContext(SparkContext.getOrCreate())

df1 = glueContext.create_dynamic_frame.from_catalog(
    database = "<glue's database name>",
    table_name = "<glue's table name>",  # I want here to be parameterized
    transformation_ctx = "df1"
)
df1 = df1.toDF()  # Here raises an Error
df1.createOrReplaceTempView('tmp_table')
df_sql = spark.sql("""SELECT ...""")

И это ошибка:

Unable to infer schema for Parquet. It must be specified manually.

Нельзя ли использовать пустую таблицу в качестве входных данных для DynamicFrame?Заранее спасибо.

1 Ответ

0 голосов
/ 11 июля 2019
df1 = df1.toDF()  # Here raises an Error

Заменить эту строку на:

dynamic_df = DynamicFrame.fromDF(df1, glueContext, 'sample_job')  # Load pyspark df to dynamic frame
...