如何在没有自定义大小写 class 的情况下将包含大量列的镶木地板文件读取到数据集?
How to read a parquet file with lots of columns to a Dataset without a custom case class?
我想使用数据集而不是数据帧。
我正在读取镶木地板文件并想直接推断类型:
val df: Dataset[Row] = spark.read.parquet(path)
我不想要 Dataset[Row]
,而是 Dataset
。
我知道我可以做类似的事情:
val df= spark.read.parquet(path).as[myCaseClass]
但是,我的数据有很多列!所以,如果我能避免写案例 class 那就太好了!
你为什么想和 Dataset
一起工作?我认为这是因为您不仅将免费获得架构(无论如何您都会得到结果 DataFrame
),而且因为您将拥有类型安全的架构。
您的数据集需要有一个 Encoder
,并且要拥有它,您需要一个能够代表您的数据集和架构的类型。
要么你 select
你的专栏数量合理并使用 as[MyCaseClass]
要么你应该接受 DataFrame
提供的内容。
我想使用数据集而不是数据帧。
我正在读取镶木地板文件并想直接推断类型:
val df: Dataset[Row] = spark.read.parquet(path)
我不想要 Dataset[Row]
,而是 Dataset
。
我知道我可以做类似的事情:
val df= spark.read.parquet(path).as[myCaseClass]
但是,我的数据有很多列!所以,如果我能避免写案例 class 那就太好了!
你为什么想和 Dataset
一起工作?我认为这是因为您不仅将免费获得架构(无论如何您都会得到结果 DataFrame
),而且因为您将拥有类型安全的架构。
您的数据集需要有一个 Encoder
,并且要拥有它,您需要一个能够代表您的数据集和架构的类型。
要么你 select
你的专栏数量合理并使用 as[MyCaseClass]
要么你应该接受 DataFrame
提供的内容。