Я прочитал эту статью об амазоне о выравнивании файла json и загрузке в красное смещение.
https://aws.amazon.com/blogs/big-data/simplify-querying-nested-json-with-the-aws-glue-relationalize-transform/
Я планирую преобразовать файл json и загрузить его в s3, а затем сканироватьснова поместите файл в aws-клей для каталога данных и загрузите данные в виде таблиц в amazon redshift.
Теперь проблема с кодом в «Образце 3: код Python для преобразования вложенного JSON и вывода его вORC 'показывает некоторые ошибки:
NameError: имя' spark 'не определено
Я не потерян, потому что я новичок в aws-glue и мне нужно загрузить json (они вложенныемассивы) в красном смещении.
Вот мой код:
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
#from awsglue.transforms import Relationalize
# Begin variables to customize with your information
glue_source_database = "DATABASE"
glue_source_table = "TABLE_NAME"
glue_temp_storage = "s3://XXXXX"
glue_relationalize_output_s3_path = "s3://XXXXX"
dfc_root_table_name = "root" #default value is "roottable"
# End variables to customize with your information
glueContext = GlueContext(spark.sparkContext)
datasource0 = glueContext.create_dynamic_frame.from_catalog(database = glue_source_database, table_name = glue_source_table, transformation_ctx = "datasource0")
dfc = Relationalize.apply(frame = datasource0, staging_path = glue_temp_storage, name = dfc_root_table_name, transformation_ctx = "dfc")
blogdata = dfc.select(dfc_root_table_name)
blogdataoutput = glueContext.write_dynamic_frame.from_options(frame = blogdata, connection_type = "s3", connection_options = {"path": glue_relationalize_output_s3_path}, format = "orc", transformation_ctx = "blogdataoutput")