Apache Spark 中的 Printschema()
Printschema() in Apache Spark
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
.
它是否根据读取文件的方式或根据我们所做的编码(此处 Tweet.class)提供打印方案 a/c?
我不知道您的代码无法正常工作的确切原因,但如果您想更改归档类型,您可以编写自定义架构。
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()
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
.
它是否根据读取文件的方式或根据我们所做的编码(此处 Tweet.class)提供打印方案 a/c?
我不知道您的代码无法正常工作的确切原因,但如果您想更改归档类型,您可以编写自定义架构。
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()