2016-07-13 3 views
1

MYSQLからJDBCを使用してスパークするデータをインポートしていますが、列の1つに時間値の大きい時間型(SQL型TIMEおよびJDBC型java.sql.Time) 03:01)。 Sparkはタイムスタンプ形式に変換し、3桁の時間を読み取っている間にエラーを引き起こします。時間の種類をSparkで扱いますMYSQL TIMEに相当するスパーク・タイム・データ型

答えて

0

おそらく、実際にSparkによって読み取られる前にデータをキャストし、あなたの申請。 JDBCデータソースを使用すると、dbtableオプションまたはtable引数として有効なサブクエリを渡すことができます。

sqlContext.read.format("jdbc").options(Map(
    "url"  -> "xxxx", 
    "dbtable" -> "(SELECT some_field, CAST(time_field AS TEXT) FROM table) tmp", 
)) 

し、アプリケーションに適用されますタイプにスパークして、それを変換する組み込み関数のいくつかの組み合わせを使用します。それはあなたが、たとえば次のような何かを行うことができますを意味します。

関連する問題