Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python AWS Glue无法读取JSON Snappy文件_Python_Amazon Web Services_Apache Spark_Aws Glue - Fatal编程技术网

Python AWS Glue无法读取JSON Snappy文件

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.

我在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.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中如何工作,谢谢你的帮助