小编Kir*_*anM的帖子

读取Avro文件会产生AvroTypeException:缺少必需的字段错误(即使新字段在架构中声明为null)

我试图反序列化/读取Avro文件,avro数据文件没有新字段.即使新模式在模式中声明为null,也应该是可选的.但它仍然给我错误的强制性.

线程"main"中的异常org.apache.avro.AvroTypeException:找到com.kiran.avro.User,期望com.kiran.avro.User,缺少必填字段loc

AVRO架构声明:

{"name": "loc", "type": ["string", "null"]}
Run Code Online (Sandbox Code Playgroud)

使用代码读取文件:

DatumReader<User> userDatumReader = new SpecificDatumReader<User>(User.class);
DataFileReader<User> dataFileReader = new DataFileReader<User>(file, userDatumReader);
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来声明可选字段?

感谢提示/建议!!

java hadoop avro

4
推荐指数
1
解决办法
6052
查看次数

如何用"_"定义的相同函数的执行与在Scala中使用命名变量定义的函数的执行方式不同

如何使用"_"定义的相同函数的执行与使用Scala中的命名变量定义的函数不同?

以下是两个函数定义的输出.

scala> import scala.util.Random
import scala.util.Random

scala> Seq("a", "b", "c").map(x => { val rand = new Random().nextInt;  x+":"+rand}).foreach(println)
a:1700883193
b:-1153799665
c:-784839760

scala> Seq("a", "b", "c").map({ val rand = new Random().nextInt;  _+":"+rand}).foreach(println)
a:-1775524209
b:-1775524209
c:-1775524209
Run Code Online (Sandbox Code Playgroud)

它是否与部分定义的函数有关?我可能会遗漏一些东西.

似乎是重复的解释:我看到了类似的问题,但重点并不明确,并注意到不同点的答案.所以在这里问一下简单直接的例子.另一个问题的链接: 为什么在Scala中使用下划线时只定义一次值 希望它很清楚.

scala

1
推荐指数
1
解决办法
73
查看次数

标签 统计

avro ×1

hadoop ×1

java ×1

scala ×1