【发布时间】:2020-02-23 13:43:45
【问题描述】:
我正在使用 flink AvroOutputFormat 写入一些数据,
val source: DataSet[Row] = environment.createInput(inputBuilder.finish)
val tableEnv: BatchTableEnvironment = new BatchTableEnvironment(environment, TableConfig.DEFAULT)
val table: Table = source.toTable(tableEnv)
val avroOutputFormat = new AvroOutputFormat[Row](classOf[Row])
avroOutputFormat.setCodec(AvroOutputFormat.Codec.NULL)
source.write(avroOutputFormat, "/Users/x/Documents/test_1.avro").setParallelism(1)
environment.execute()
这会将数据写入名为test_1.avro 的文件中。当我尝试读取文件时,
val users = new AvroInputFormat[Row](new Path("/Users/x/Documents/test_1.avro"), classOf[Row])
val usersDS = environment.createInput(users)
usersDS.print()
这会将行打印为,
java.lang.Object@4462efe1,java.lang.Object@7c3e4b1a,java.lang.Object@2db4ad1,java.lang.Object@765d55d5,java.lang.Object@2513a118,java.lang.Object@2bfb583b,java.lang.Object@73ae0257,java.lang.Object@6fc1020a,java.lang.Object@5762658b
有没有办法打印这个数据值而不是对象地址。
【问题讨论】:
-
userDS类型是什么?好像你回退到ObjectstoString方法 -
我是
DataSet[Row]
标签: scala apache-flink avro flink-batch