Scala-如何将字符串值传递到数据帧过滤器(Spark-Shell)

时间:2018-06-28 17:59:20

标签: scala apache-spark hadoop hdfs

我在Spark-Shell环境中使用Spark 2.2.0和Scala 2.11.8。 我有一个数据帧df,我需要根据“日期”列的值过滤掉前一天的数据,然后将数据附加到HDFS位置。 (例如今天是2018-06-28,我需要2018-06-27的数据)

下面是代码:

 df.filter($"date" === "2018-06-27") .write.mode(SaveMode.Append).parquet("hdfs:/path..../date=2018-06-27")
  

我需要上面的代码来实现自动化,因此我需要替换   过滤器值以及目录名称的“ 2018-06-27”。   因此,如果我有一个字符串-> date_test:字符串= 2018-06-27;   下面的代码应该仍然有效

 df.filter($"date" === "date_test") .write.mode(SaveMode.Append).parquet("hdfs:/path..../date=date_test")

该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以应用以下过滤条件

evaluate_sample_score

您可以为此解决方案

//Input
+----------+
|      date|
+----------+
|2018-02-01|
|2017-01-02|
+----------+

//Solution: 
 val previousDate="'2018-02-01'"
 df.filter(s"date=$previousDate").show

//Output: 
+----------+
|      date|
+----------+
|2018-02-01|
+----------+