我想使用数据集而不是数据帧。
我正在阅读一个镶木地板文件,并希望直接推断出这些类型:
val df: Dataset[Row] = spark.read.parquet(path)
我不想Dataset[Row]
而是Dataset
。
我知道我可以这样做:
val df= spark.read.parquet(path).as[myCaseClass]
但是,我的数据有很多列!所以,如果我可以避免写一个案例类,那就太棒了!
答案 0 :(得分:2)
为什么要使用Dataset
?我认为这是因为你不仅有免费的架构(无论如何都有结果DataFrame
),但因为你有一个类型安全的架构。
您的数据集需要Encoder
,并且需要一个代表您的数据集的类型,因此需要一个模式。
您将select
列添加到合理的数字并使用as[MyCaseClass]
,或者您应该接受DataFrame
提供的内容。