scala - Scala - 如何将字符串值传递给数据框过滤器(Spark-Shell)
问题描述
我在 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: String = 2018-06-27; 下面的代码应该仍然有效
df.filter($"date" === "date_test") .write.mode(SaveMode.Append).parquet("hdfs:/path..../date=date_test")
这个怎么做?
解决方案
您可以应用如下过滤条件
//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|
+----------+
您可以为您的解决方案这样做
val datetest:String="2018-02-01"
df.filter(s"date='$datetest'").write.mode(SaveMode.Append).parquet(s"hdfs:/path..../$datetest")
推荐阅读
- python - 返回 lambda 的函数的类型注释
- c++ - 输入 C++ 中的错误
- html - 将 div 放在另一个具有响应式设计的 div 下
- java - 如何将功能添加到在另一个按钮内创建的按钮?
- c++ - 比率乘法期间的 chrono::duration_cast 问题
- c - 为什么我在 C 代码中得到相同的结果(与第一个结果相同)?
- python-3.x - kafka-python:在 kafka 生产者中指定分区时出错
- prolog - 有什么作用!序言中的符号是什么意思?
- r - 创建集群后如何在 R 中执行 Wilcoxon-Mann-Whitney 检验?
- c# - 向量
弱 SIMD 性能