1
申し訳ありませんが、これが重複している場合、解決策は私には効果がありません。おそらく私はここで何か基本的なものを欠いているでしょう。私は(Scalaで)これを行うことにより、「状態」(String型)と呼ばれるフィールドに基づいて、ここで興味のある「行」の一部をフィルタ処理しようとしていますスパーク - カラム名を使用してデータフレームにフィルタ/マップを適用すると
inputDF: org.apache.spark.sql.DataFrame = [ts: string, id: string ... 20 more fields]
:私はDATAFRAME以下のように持って
inputDF.filter(inputDF("state") == "BALANCED").show()
しかしこれは私にエラーを与える:
<console>:143: error: overloaded method value filter with alternatives:
(func: org.apache.spark.api.java.function.FilterFunction[org.apache.spark.sql.Row])org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and>
(func: org.apache.spark.sql.Row => Boolean)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and>
(conditionExpr: String)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and>
(condition: org.apache.spark.sql.Column)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]
cannot be applied to (Boolean)
inputDF.filter(inputDF("connState") == "BALANCED").show()
誰かがここで間違っているものを指摘していただけますか?私はhttps://rklicksolutions.wordpress.com/2016/03/03/tutorial-spark-1-6-sql-and-dataframe-operations/のものを含むいくつかの例に従ったが、何が間違っているか把握することはできない。
'inputDF(" state ")'は 'org.apache.spark.sql.Column'を返し、' == 'は' Column'データ型に対して定義されていないためです。 '==='は、等価性をチェックするために定義されています。 – philantrovert