小编heh*_*ehe的帖子

类型参数 [T] 不符合方法产品的类型参数界限 [T <: Product]

我想用这个代码来读取csv文件。但它会导致泛型错误。为什么?我想我被指定为“”这样的类型。

def readMoviesData[T](spark: SparkSession, dataPath: String): Dataset[T] = {
  import spark.implicits._
  spark.read.format("csv").schema(Encoders.product[T].schema)
    .option("header","true").load(dataPath).as[T]
}

def analysisMovies(dataPath: String): Unit = {
  val spark = SparkSession.builder().appName("analysis movies data").getOrCreate()
  val movies: Dataset[MovieModel] = readMoviesData(spark, dataPath + "/movies.csv")
  movies.createOrReplaceTempView("movies")
  spark.sql("select count(*) from movies")
}
Run Code Online (Sandbox Code Playgroud)

错误

Error:(10, 53) type arguments [T] do not conform to method product's type parameter bounds [T <: Product]
spark.read.format("csv").schema(Encoders.product[T].schema)
Run Code Online (Sandbox Code Playgroud)

generics scala apache-spark

6
推荐指数
1
解决办法
5037
查看次数

如何使用一行代码合并 set use java stream

我有两套这样的?

Set<String> set1;
Set<String> set2;
Run Code Online (Sandbox Code Playgroud)

我想将它与

Set<String> s = Stream.of(set1, set2).collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)

和这样的错误:

在此处输入图片说明

如何使用 flatMap 将 Set 转换为 String 对象的序列?有没有其他解决方案可以优雅地完成这个操作?

java merge java-stream

5
推荐指数
1
解决办法
350
查看次数

标签 统计

apache-spark ×1

generics ×1

java ×1

java-stream ×1

merge ×1

scala ×1