私は、以下に述べるように火花の中に2つのデータフレームを持っています。火花の日付列に基づいて2つのデータフレームとフィルタ結果を比較
test1のは、ID、名前、年齢などの列がありval test = hivecontext.sql("select max(test_dt) as test_dt from abc");
test: org.apache.spark.sql.DataFrame = [test_dt: string]
val test1 = hivecontext.table("testing");
、私はどこaudit_dt> test_dt test1のからこれら2つのデータフレームやフィルター行を比較したいaudit_dt
。どういうわけか私はそれをすることができません。 lit_functionを使用してaudit_dtとリテラル日付を比較できますが、別のデータフレーム列と比較することはできません。テストデータフレーム内
下に述べたように、私は点灯機能を使用してリテラルの日付を比較することができる午前val output = test1.filter(to_date(test1("audit_date")).gt(lit("2017-03-23")))
マックス日がある - TEST1のデータフレーム内> 2017年4月26日
データ - >
Id,Name,Age,Audit_Dt
1,Rahul,23,2017-04-26
2,Ankit,25,2017-04-26
3,Pradeep,28,2017-04-27
ID = 3のデータが必要なのは、最大日付の基準を超える行のみを認定するためです。
私はすでに以下のオプションを試してみましたが、動作しません。
val test = hivecontext.sql("select max(test_dt) as test_dt from abc")
val MAX_AUDIT_DT = test.first().toString()
val output = test.filter(to_date(test("audit_date")).gt((lit(MAX_AUDIT_DT))))
誰もがデータフレームテストの列と比較する方法として提案できますか?
test1.filter(to_date(test1("audit_date")).gt(to_date(test("test_dt"))))
ストアフィルター内の変数と使用価値:
おかげ
例のデータと予想される出力を共有してください。 – mtoto
@mtoto質問 –