【问题标题】:How to create a ClassTag<Dataset<Row>> in Java如何在 Java 中创建 ClassTag<Dataset<Row>>
【发布时间】:2019-10-29 21:55:37
【问题描述】:

我正在编写一个需要广播某些内容的 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);
}

如何使代码编译?

【问题讨论】:

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


    【解决方案1】:

    你必须以一种丑陋的方式投射它:

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

    很遗憾,我不知道更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2020-05-20
      • 1970-01-01
      • 2020-05-11
      • 2018-10-02
      • 2020-10-21
      • 2017-11-17
      • 1970-01-01
      • 2020-09-29
      • 2018-02-16
      相关资源
      最近更新 更多