首页 > 解决方案 > 为什么 spark dataframe.take 会抛出异常不兼容的类型?

问题描述

我在Java中尝试过这个:

Dataset<Row> df1 = spark.read()
                .format("avro")
                .load("mysource_path");

Row[] rows = df1.selectExpr("sum(distance) as total").take(1);

编译器说:

error: incompatible types: Object cannot be converted to Row[]
        Row[] rows = df1.selectExpr("sum(distance) as total").take(1);

标签: javaapache-sparkapache-spark-sql

解决方案


在 Java 中,尽管智能感知说它是 Row[],但 take 方法返回一个 Object。

为了解决我做了:

Row[] rows = (Row[])df1.selectExpr("sum(distancia) as total").take(1);

推荐阅读