jjzjj

hadoop - json 文档缺失字段的 Avro 序列化问题

我正在尝试使用ApacheAvro对从ElasticSearch导出到HDFS中的大量Avro文档的数据实现模式(使用Drill进行查询)。我在使用Avro默认设置时遇到了一些问题鉴于此模式:{"namespace":"avrotest","type":"record","name":"people","fields":[{"name":"firstname","type":"string"},{"name":"age","type":"int","default":-1}]}我期望像{"firstname":"Jane"}这样的json文档将使用age字段的默认值-1进行序列化。de

hadoop - 具有纯文本输入和 avro 输出的 mapreduce 作业

我对将Avro与mapreduce结合使用感到非常困惑,找不到好的教程可以遵循。当输入和输出都是Avro数据文件时,AvroJob和AvroMapper这样的类似乎是为解决问题而设计的。如果您的输入只是纯文本呢?具体来说:我的映射器将LongWritable键和文本值作为输入。它发出文本键和MyAvroRecord值。我的缩减器将文本键和MyAvroRecords的迭代器作为输入,并发出文本键和MyAvroRecord值。如何获得将这些文本键和MyAvroRecord值写入文件的OutputFormat?干杯,戴夫 最佳答案 好的,

hadoop - 使用 avro-tools 连接 Avro 文件

我试图将avro文件合并成一个大文件,问题是concat命令不接受通配符hadoopjaravro-tools.jarconcat/input/part*/output/bigfile.avro我得到:Exceptioninthread"main"java.io.FileNotFoundException:Filedoesnotexist:/input/part*我尝试使用""和''但没有机会。 最佳答案 我很快检查了Avro的源代码(1.7.7),似乎concat不支持glob模式(基本上,除了最后一个参数之外,它们对每个参数调用

scala - 如何使用 Avro 文件上的架构在 Spark 中加载 Avros?

我正在从Clouderaparcel运行CDH4.4和Spark0.9.0。我有一堆通过Pig的AvroStorageUDF创建的Avro文件。我想使用通用记录或Avro文件上的模式将这些文件加载​​到Spark中。到目前为止,我已经试过了:importorg.apache.avro.mapred.AvroKeyimportorg.apache.avro.mapreduce.AvroKeyInputFormatimportorg.apache.hadoop.io.NullWritableimportorg.apache.commons.lang.StringEscapeUtils.es

hadoop - 为什么我们需要 Avro 模式演化

我是Hadoop和编程的新手,对Avro模式演进有点困惑。我将解释到目前为止我对Avro的理解。Avro是一种序列化工具,它在顶部存储二进制数据,其json模式。架构如下所示。{"namespace":"com.trese.db.model","type":"record","doc":"ThisSchemadescribesaboutProduct","name":"Product","fields":[{"name":"product_id","type":"long"},{"name":"product_name","type":"string","doc":"Thisisthe

hadoop - Thrift、Avro、Protocolbuffers——它们都死了吗?

从事宠物项目(cassandra、spark、hadoop、kafka)我需要一个数据序列化框架。查看常见的三个框架-即Thrift、Avro和Protocolbuffers-我注意到它们中的大多数似乎都死气沉沉,每年最多发布2个次要版本。这给我留下了两个假设:它们与此类框架一样完整,只要不需要新功能,它们就处于维护模式没有理由存在这样的框架——我不清楚为什么。如果是这样,有哪些替代方案?如果有人能给我一些关于我的假设的提示,欢迎任何意见。 最佳答案 ProtocolBuffers是一个非常成熟的框架,大约15年前在Google首次

hadoop - Avro 与 Parquet

我打算为我的hadoop相关项目使用一种hadoop文件格式。我理解parquet对于基于列的查询和avro对于全扫描或当我们需要所有列数据时是有效的!在我继续选择一种文件格式之前,我想了解一种文件格式相对于另一种文件格式的优缺点。谁能用简单的术语向我解释一下? 最佳答案 Avro是一种基于行的格式。如果你想检索整个数据,你可以使用AvroParquet是一种基于列的格式。如果您的数据包含很多列,但您对列的子集感兴趣,那么您可以使用Parquet当涉及频繁更新数据时,HBase很有用。Avro的检索速度很快,Parquet更快。

ios - 用C语言将数组数据设置为Avro数组类型

我正在用Objective-C编程。我正在使用ApacheAvro用于数据序列化。我的avro架构是这样的:{"name":"School","type":"record","fields":[{"name":"Employees","type":["null",{"type":"array","items":{"name":"Teacher","type":"record","fields":[{"name":"name","type":"string"}{"name":"age","type":"int"}]}}],"default":null}]}在我的Objective-C代码

java - 从 POJO 到 Avro Record 的通用转换

我正在寻找一种以通用方式将POJO转换为avro对象的方法。实现应该对POJO类的任何更改都是健壮的。我已经实现了,但是明确地填写了avro记录(参见下面的示例)。有没有办法摆脱硬编码的字段名称,只从对象中填充avro记录?反射是唯一的方法,还是avro提供开箱即用的功能?importjava.util.Date;importjava.util.HashMap;importjava.util.Map;importorg.apache.avro.Schema;importorg.apache.avro.generic.GenericData.Record;importorg.apache

java - 使用 Java 将 Json 对象转换为 Parquet 格式而不转换为 AVRO(不使用 Spark、Hive、Pig、Impala)

我有一个场景,使用Java将作为Json对象存在的消息转换为ApacheParquet格式。任何示例代码或示例都会有所帮助。就我发现将消息转换为Parquet而言,正在使用Hive、Pig、Spark。我需要转换为Parquet,而无需仅通过Java涉及这些。 最佳答案 要将JSON数据文件转换为Parquet,您需要一些内存中表示。Parquet没有自己的Java对象集;相反,它重用了其他格式的对象,例如Avro和Thrift。这个想法是Parquet与您的应用程序可能已经使用的对象一起原生工作。要转换您的JSON,您需要将记录转