gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 16:28:12 27 4
gpt4 key购买 nike

我在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com