我在Java中使用spark SQL创建了一个数据框。
Dataset<Row> dateDF = spark.sql("select dates from dim_date where dates between '2017-01-01' and '2017-01-04'");
当我使用show()
方法时,它会返回新行中的每个日期。据我所知,它基本上只有一栏。
我希望String变量中的这些值带有单引号,如下所示:
'2017-01-01','2017-01-02','2017-01-03,'2017-01-04'
我怎样才能做到这一点?
答案 0 :(得分:3)
您可以选择列,使用as
映射到字符串并收集到列表中。我认为将String列表转换为单个String应该不会成为问题:
dateDF.select("dates").as(Encoders.STRING()).collectAsList() //... and so on
在Java 8上,您可以使用以下命令将值合并为一个String:
dateDF.select("dates").as(Encoders.STRING()).collectAsList().stream().collect(Collectors.joining(","));