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()