正如您在Column's documentation中看到的那樣,可以使用===
方法將列的值與Any
變量類型進行比較。
val df = sc.parallelize(
("2016-02-24T22:54:17Z", "foo") ::
("2010-08-01T00:00:12Z", "bar") ::
Nil
).toDF("ts", "val").withColumn("ts", $"ts".cast("timestamp"))
df.where($"ts" === "2010-08-01T00:00:12Z").show(10, false)
// +---------------------+---+
// |ts |val|
// +---------------------+---+
// |2010-08-01 02:00:12.0|bar|
// +---------------------+---+
如果你想更加明確一些類型的可更換
=== "2010-08-01T00:00:12Z"
與
=== lit("2010-08-01T00:00:12Z").cast("timestamp")
還有Column.equalTo
方法專爲Java的互操作性:
df.where($"ts".equalTo("2010-08-01T00:00:12Z")).show(10, false)
最後星火支持NULL
安全相等運算符(<=>
,Column.eqNullSafe
),但這些都需要笛卡爾乘積在星火< 1.6(見SPARK-11111)。
@AlbertoBonsanto AFAIK沒有。您可以鏈接Java文檔。另外,可以回滾到包含空安全信息並在其上編輯的以前版本? – zero323
我不說你做:)當你檢查歷史([點擊編輯...](https://stackoverflow.com/posts/35640010/revisions))並去特定的編輯有一個回滾鏈接。你甚至會得到一個徽章;) – zero323
@AlbertoBonsanto謝謝! – zero323