如何从Spark 2.0中的DataFrame列创建数据集



是否可以从Spark 2.0中的DataFrame列创建数据集?我有一个以下问题:我想从日期按镶木quet数据分区的数据中读取一些数据,然后将其中一列转换为数据集。Exmaple:

val frame = spark.read.parquet(path).select($"date", $"object".as[MyObjectType]).filter($"date" > "2016-10-01")

现在,我需要将第二列转换为Dataset[MyObjectType],并且不了解我如何做到这一点。MyObjectType是Scala产品类型

您可以做cast

val frame = spark.read.parquet(path)
    .select($"date", $"object".cast(MyObjectTypeUDT))
    .filter($"date" > "2016-10-01")

在这种情况下,MyObjectTypeudt是SQL类型之一,即StringType或IntegerType或自定义UserDefinedType。

或,如果您有一些代表数据集中内容的类:

case clas DateWithObject (date : Timestamp, object: MyObject)

然后您可以写:

val frame = spark.read.parquet(path)
    .select($"date", $"object")
    .as[DateWithObject] 
    .filter($"date" > "2016-10-01")

我认为这是最简单的方法

相关内容

  • 没有找到相关文章