如何在Java中创建ClassTag <Dataset <Row >>

时间:2019-10-29 21:55:37

标签: scala apache-spark generics apache-spark-sql

我正在编写一个需要广播某些内容的spark-sql查询。

现在我有一些类似的代码。通用类型参数错误。

final Broadcast<Dataset<Row>> b = sparkSession.sparkContext().broadcast(
                sparkSession.sql("My SQL"),
                classTag(Dataset.class)
        );

createTag方法:

private static <T> ClassTag<T> classTag(final Class<T> clazz) {
        return scala.reflect.ClassManifestFactory.fromClass(clazz);
}

如何编译代码?

1 个答案:

答案 0 :(得分:0)

您将不得不以一种丑陋的方式进行投射:

classTag((Class<Dataset<Row>>) (Class<?>) Dataset.class)

不幸的是,我不知道更好的解决方案。