草庐IT

Avro-Parquet

全部标签

java - 从 HDFS 读取一个简单的 Avro 文件

我正在尝试简单读取存储在HDFS中的Avro文件。当它在本地文件系统上时,我发现了如何读取它....FileReaderreader=DataFileReader.openReader(newFile(filename),newGenericDatumReader());for(GenericRecorddatum:fileReader){Stringvalue=datum.get(1).toString();System.out.println("value="value);}reader.close();但是,我的文件在HDFS中。我无法为openReader提供路径或FSData

java - 如何在 Parquet 文件中创建嵌套对象和数组?

如何创建带有嵌套字段的parquet文件?我有以下内容:publicstaticvoidmain(String[]args)throwsIOException{intfileNum=10;//numoffilesconstructedintfileRecordNum=50;//recordnumofeachfileintrowKey=0;for(inti=0;imetas=newHashMap();metas.put(HConstants.START_KEY,genRowKey("%10d",rowKey+1));metas.put(HConstants.END_KEY,genRowK

java - Flume Twitter Agent 生成的 Avro 文本文件未在 Java 中读取

无法使用Flume推特代理读取和解析流推特数据创建的文件,既不使用Java也不使用Avro工具。我的需求是将avro格式转换成JSON格式。当使用任何一种方法时,我得到异常:org.apache.avro.AvroRuntimeException:java.io.IOException:Blocksizeinvalidortoolargeforthisimplementation:-40我在伪节点集群中使用Hadoopvanilla配置,hadoop版本是2.7.1Flume版本为1.6.0twitter代理的flume配置文件和解析avro文件的java代码附在下面:TwitterA

java - Athena 从 parquet 模式创建表

有没有办法根据avro模式直接从parquet文件在AmazonAthena中创建表?模式被编码到文件中,所以我需要自己实际创建DDL看起来很愚蠢。我看到了this还有另一个duplication但它们与Hive直接相关,它不适用于Athena。理想情况下,我正在寻找一种无需在控制台上定义即可以编程方式执行此操作的方法。 最佳答案 现在使用AWSGlue或多或少是可能的.Glue可以抓取一堆不同的数据源,包括ParquetfilesonS3.发现的表被添加到Glue数据目录并可从Athena查询。根据您的需要,您可以安排Glue爬虫

java - Avro Java API 时间戳逻辑类型?

使用AvroJavaAPI,我可以创建一个简单的记录模式,例如:SchemaschemaWithTimestamp=SchemaBuilder.record("MyRecord").namespace("org.demo").fields().name("timestamp").type().longType().noDefault().endRecord();如何使用逻辑类型标记架构字段,特别是:https://avro.apache.org/docs/1.8.1/api/java/org/apache/avro/LogicalTypes.TimestampMillis.html

java - 在 avro 文件中存储空值

我有一些像这样的json数据:{"id":1998983092,"name":"TestName1","type":"searchstring","creationDate":"2017-06-06T13:49:15.091+0000","lastModificationDate":"2017-06-28T14:53:19.698+0000","lastModifiedUsername":"testuser@test.com","lockedQuery":false,"lockedByUsername":null}我能够毫无问题地将lockedQuery空值添加到GenericReco

java - 如何使用 apache avro SchemaBuilder 更新现有的 avro 模式?

我正在测试一个新的模式注册表,它加载和检索不同类型的avro模式。在测试过程中,我需要创建一堆不同类型的avro模式。由于它涉及很多排列,我决定以编程方式创建模式。我正在使用apacheavroSchemaBuilder这样做。我使用以下方法创建了avro:SchemaoldSchema=SchemaBuilder.record("abc").aliases("records").fields().name("field_null").type("null").noDefault().endRecord();这成功了。创建的avro看起来像:{"type":"record","name

java - 在 AWS Lambda 函数上创建 Parquet 文件

我在S3上收到一组(1Mb)CSV/JSON文件,我想将其转换为Parquet。我期望能够使用Lambda函数轻松地将这些文件转换为Parquet。在查看Google后,我没有找到没有某种Hadoop的解决方案。因为这是一个文件转换,我不敢相信没有一个简单的解决方案。有人有一些Java/Scala示例代码来进行这种转换吗? 最佳答案 如果您的输入JSON文件不大(pyarrow,尽管路线有点复杂。它涉及使用Pandas:df=pd.read_json(file.json)然后将其转换为parquet文件:pq=pa.parquet.

java - Avro 解码给出 java.io.EOFException

我将Apacheavro架构与Kafka0.0.8V结合使用。我在生产者/消费者端使用相同的模式。架构中没有任何更改。但是当我尝试使用消息时,我在消费者那里遇到了一些异常(exception)。为什么会出现此错误?制作人publicvoidsendFile(Stringtopic,GenericRecordpayload,Schemaschema)throwsCoreException,IOException{BinaryEncoderencoder=null;ByteArrayOutputStreamout=null;try{DatumWriterwriter=newSpecific

java - 如何使用 apache avro 生成无模式的 avro 文件?

我正在使用Apacheavro进行数据序列化。因为,数据有一个固定的模式,我不希望模式成为序列化数据的一部分。在以下示例中,模式是avro文件“users.avro”的一部分。Useruser1=newUser();user1.setName("Alyssa");user1.setFavoriteNumber(256);Useruser2=newUser("Ben",7,"red");Useruser3=User.newBuilder().setName("Charlie").setFavoriteColor("blue").setFavoriteNumber(null).build(