问题描述
我尝试读取Avro文件,使用Wrangler进行基本转换(删除名称为Ben的记录),然后将结果作为JSON文件写入Google云存储。 Avro文件具有以下架构:
{ “ type”:“记录”, “ name”:“ etlSchemaBody”, “字段”:[ { “ type”:“ string”, “ name”:“名称” } ] }
牧马人的转变如下: transformation
以下是JSON文件的输出架构: output schema
当我运行管道时,它成功运行,并且在云存储中创建了JSON文件。但是JSON输出为空。 尝试预览运行时,出现以下消息: warning message
解决方法
使用Wrangler进行转换时,GCS源的默认值为format: text
和body: string
(数据类型);但是,要在Wrangler中正确使用Avro文件,您需要对其进行更改,需要将格式设置为blob
,并且将主体数据类型设置为bytes
,如下所示:
之后,管道的预览将产生输出记录。您可以在下面看到我的工作示例:
编辑:
如果您想按前面所述将文件解析为Wrangler中的Avro,则需要将format: blob
和输出模式设置为body: bytes
,因为它需要文件中的内容。二进制格式。
另一方面,如果您只想应用过滤器(在Wrangler内),则可以执行以下操作:
- 使用
format: avro
,see img打开文件。 - 根据您的Avro文件具有的字段(在本例中为
name
,数据类型为see img)设置输出模式。 - 仅在Wrangler上使用过滤器(此处未解析到Avro)see img。
这样,您还可以获得所需的result。