Dataset<Tweet> ds = sc.read().json("/path").as(Encoders.bean(Tweet.class));
Tweet class :-
long id
string user;
string text;
ds.printSchema();
输出: -
root
|-- id: string (nullable = true)
|-- text: string (nullable = true)
|-- user: string (nullable = true)
json文件包含字符串类型
的所有参数我的问题是我正在输入并将其编码为Tweet.class
。架构中为id指定的数据类型为Long,但是当打印架构时,它会转换为String
。
它是否为printcheme a / c提供了如何读取文件或根据我们的编码(这里是Tweet.class)?
答案 0 :(得分:3)
我不知道您的代码无效的确切原因,但如果您想更改字段类型,则可以编写customSchema。
val schema = StructType(List
(
StructField("id", LongType, nullable = true),
StructField("text", StringType, nullable = true),
StructField("user", StringType, nullable = true)
)))
您可以按如下方式将架构应用于数据框:
Dataset<Tweet> ds = sc.read().schema(schema).json("/path")
ds.printSchema()