Python AWS Glue无法读取JSON Snappy文件
我在PySpark中读取AWS胶水作业数据时遇到问题: 数据从AWS消防软管(示例数据)发送到s3存储桶,存储为JSON并使用snappy hadoop进行压缩 我可以使用Spark.read.json()从遗留的Spark dataframe读取数据,但使用from_catalog或from_options方法无法使用Glue Dynamic Frame(根本不解析架构): Spark遗留数据帧Python AWS Glue无法读取JSON Snappy文件,python,amazon-web-services,apache-spark,aws-glue,Python,Amazon Web Services,Apache Spark,Aws Glue,我在PySpark中读取AWS胶水作业数据时遇到问题: 数据从AWS消防软管(示例数据)发送到s3存储桶,存储为JSON并使用snappy hadoop进行压缩 我可以使用Spark.read.json()从遗留的Spark dataframe读取数据,但使用from_catalog或from_options方法无法使用Glue Dynamic Frame(根本不解析架构): Spark遗留数据帧 # import from legacy spark read spark_df = spark.
# import from legacy spark read
spark_df = spark.read.json("s3://my-bucket/sample-json-hadoop-snappy/")
spark_df.printSchema()
- result:
root
|-- change: double (nullable = true)
|-- price: double (nullable = true)
|-- sector: string (nullable = true)
|-- ticker_symbol: string (nullable = true)
|-- year: integer (nullable = true)
|-- dt: date (nullable = true)
# import from glue options
options_df = glueContext.create_dynamic_frame.from_options(
connection_type="s3",
connection_options = {"paths": ["s3://my-bucket/sample-json-hadoop-snappy/"]},
format="json"
)
options_df.printSchema()
- result:
root
粘合动态框架
# import from legacy spark read
spark_df = spark.read.json("s3://my-bucket/sample-json-hadoop-snappy/")
spark_df.printSchema()
- result:
root
|-- change: double (nullable = true)
|-- price: double (nullable = true)
|-- sector: string (nullable = true)
|-- ticker_symbol: string (nullable = true)
|-- year: integer (nullable = true)
|-- dt: date (nullable = true)
# import from glue options
options_df = glueContext.create_dynamic_frame.from_options(
connection_type="s3",
connection_options = {"paths": ["s3://my-bucket/sample-json-hadoop-snappy/"]},
format="json"
)
options_df.printSchema()
- result:
root
您也可以在粘合作业中使用spark legacy,如果您只想在粘合库上执行操作,则使用spark读取,然后将df转换为动态帧
df=spark.read.json(“s3://my bucket/sample json hadoop snappy/”)
从awsglue.dynamicframe导入dynamicframe
DynF=DynamicFrame.fromDF(df,glueContext,“df”)
目前,拼花地板文件仅在Glue Lib中支持snappy压缩。但是,我会失去使用Glue书签功能的能力吗?你有支持格式和压缩的链接吗?我在aws文档中没有发现任何提及这一点的内容?如果需要,您可以提出支持通知单,他们将在同一时间确认您。此外,您还可以提出一个功能请求,要求添加对json的snappy压缩支持。您如何知道json支持哪种压缩?在aws文档页面上,它说snappy支持orc和拼花……对于json,您可以使用gzipWell,它似乎确实不受支持。我不确定您指的是哪个文档页,因为我找不到有关该主题的任何信息。不管它现在在gzip中如何工作,谢谢你的帮助