2017-08-14 6 views
0

私は、MySQLを打つJDBCテーブルからデータフレームを持っていると私はUUIDを使用して、それをフィルタリングする必要があります。データはバイナリ(16)を使用してMySqlに格納され、sparkでクエリを実行しても期待通りにArray [Byte]に変換されます。スパークDATAFRAMEフィルターデータ

私がスパークする新たなんだとデータフレームのフィルタメソッドに型UUIDの変数を渡すためのさまざまな方法を試してきました。 アイブ氏は、異なるメッセージで

val id: UUID = // other logic that looks this up 
df.filter(s"id = $id") 
df.filter("id = " convertToByteArray(id)) 
df.filter("id = " convertToHexString(id)) 

これらのエラーのすべてのようなステートメントを試してみました。 私は何とかバイナリ型を渡す必要がありますが、正しく行う方法については私の指を置くことはできません。

ご協力いただきまして誠にありがとうございます。

答えて

0

オンラインでも複数のソースを確認した後、私はフィルタ法を使用せずにこれを達成する方法を見つけました。私にとってこのプレフィルタ結果

sparkSession.read.jdbc(connectionString, s"(SELECT id, {other col omitted) FROM MyTable WHERE id = 0x$id) AS MyTable", props) 

、その後、私はデータを扱う:私は私のsparkSessionから読んでいるとき

、次のように私は、テーブル名の代わりにアドホック・テーブルを使用しますフレームが必要です。

誰でもフィルタを用いて、溶液を知っているならば、私はまだそれがいくつかのケースで有用であろうと、それを知るのが大好きです。

関連する問題