当前位置: 首页 > 知识库问答 >
问题:

AWS Glue无法读取JSON Snappy文件

山寒
2023-03-14

我在PySpark中使用AWS胶水作业读取数据时遇到问题:

数据从AWS firehose(示例数据)发送到s3 bucket,存储为JSON并使用snappy hadoop进行压缩。

我可以使用spark.read.json()从遗留的Spark数据框中读取数据,但这不适用于使用from_catalog或from_options方法的Glue动态框架(模式根本没有解析):

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

共有1个答案

燕鸿文
2023-03-14

您也可以在粘合作业中使用spark legacy,如果您只想在粘合库上执行操作,那么可以使用spark读取,然后将df转换为动态帧。


df = spark.read.json("s3://my-bucket/sample-json-hadoop-snappy/")
from awsglue.dynamicframe import DynamicFrame
DynF = DynamicFrame.fromDF(df, glueContext, "df")

目前,仅在Glue库中支持拼花文件的快速压缩。

 类似资料:
  • 问题内容: 我想读取.bak文件,这些文件是ms sql数据库的备份文件。现在,我正在研究如何使用Sql Mngmnt studio读取这些文件。请帮帮我。谢谢 问题答案: 您可以使用SQL Management Studio将.BAK文件还原到临时数据库并读取它们! 这里的一些指针

  • 我正在尝试使用clojure创建一个简单的android应用程序,它可以读取csv文件,并允许用户对数据进行类似正则表达式的搜索。问题是,当我尝试读取数据时,会出现以下异常。 我的研究表明,这通常意味着Clojure正在寻找某样东西,但找不到。但是我不知道它可能是什么或者为什么。 下面是引发异常的Clojure代码: 据我所知,“kamus.csv”在正确的目录中,所以我不认为是这样。如果我在re

  • 问题内容: 我一周前开始使用Java,现在我想在窗口中插入一个图像。无论我尝试什么,我都会在Eclipse中继续使用它: javax.imageio.IIOException:无法读取输入文件! } 我认为代码很容易解释。我试图解决这个问题 我想做的是一个桌面程序,我的源代码存储如下:training / src / graphics / Window training / src / src /

  • 问题内容: 我在做一些真正愚蠢的事情时遇到了一个大问题。也就是说,打开流到我的META-INF文件夹中的资源文件。我正在使用jar工具并执行以下操作: 我只是一个空!该项目是使用maven构建的,xsd文件最终位于META-INF文件夹中,但仍然无法使用。 我不理解的是背后的理论?ClassLoader如何在文件系统中执行查找?如何获得文件? 问题答案: 尝试删除第一个斜杠: 如果要在对象上调用方

  • 问题内容: package main &{0xc42000a240}无 0无 没有错误,也没有数据。 从系统头文件读取此路径。 系统:macOS el capiton,go版本go1.8 darwin / amd64 我的最终目标是将此文件读入结构体中。此文件包含系统用户信息。 我可以这样做吗? 我会继续尝试… 问题答案: 您可以为此使用函数: 原始代码中的问题是读到的 长度为0个字节。由于阅读器

  • 问题内容: 我对Logstash有一个奇怪的问题。我正在提供一个日志文件作为logstash的输入。配置如下: 我已经在运行elasticsearch服务器并验证是否正在使用curl查询接收数据。问题是,当输入为时,没有数据被接收。但是,如果我将输入更改为以下内容,它将顺利发送所有输入数据: 我不明白我要去哪里错了。有人可以看看这个吗? 问题答案: 您应该在文件部分下设置start_positio

  • 我正在尝试从com包中的CSV文件中读取值。实例但当我使用以下语法运行代码时: 上面写着: java.io.FileNotFoundException: Dataset.csv 我也尝试过使用: 仍然不工作。任何帮助都会很有帮助。谢谢

  • 问题内容: 这是我的第一篇文章,请问如果我做错了什么。直到我尝试从源包中读取图像,此代码才能正常运行。但是现在它无法读取任何图像。我究竟做错了什么?还是关于日食的事? 例外: 谢谢… 问题答案: 改变了,如果你使用的是Windows。 更跨平台的方法将替代 对于每对。 进一步了解File api文档 编辑 (对不起,我没有读过此行) 这段代码运行正常,直到我尝试从源包中读取图像 为了从jar包中获