作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 Spark-Shell 环境中使用 Spark 2.2.0 和 Scala 2.11.8。我有一个数据框 df,我需要根据 'date' 列的值过滤掉前一天的数据,然后将数据附加到 HDFS 位置。 (比如今天是2018-06-28,我需要2018-06-27的数据)
代码如下:
df.filter($"date" === "2018-06-27") .write.mode(SaveMode.Append).parquet("hdfs:/path..../date=2018-06-27")
I need the code above for automation, so I need to replace "2018-06-27" for the filter value as well as the directory name. So if I have a string -> date_test: String = 2018-06-27; The code below should be still working
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")
关于Scala - 如何将字符串值传递给数据框过滤器 (Spark-Shell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51088981/
我是一名优秀的程序员,十分优秀!