2017-01-12 40 views
0

私は自分のデータフレームにタイムスタンプを追加し、それらをハイブに保持しようとしています。current_timestamp()の値をscalaの文字列に変換する方法

しかし、ここに問題があります:ハイブバージョン0.13でタイムスタンプをデータ型として使用できないため、タイムスタンプデータ型のcurrent_timestamp()を文字列に変換して、ハイブテーブルに読み込むことができます。ここで

は私のタイムスタンプ列です:

[2017-01-12 12:55:55.278] [2017-01-12 12:55:55.278] [2017-01-12 12:55:55.278] [2017-01-12 12:55:55.278] [2017-01-12 12:55:55.278] 

私はこれを試してみましたが、運としている:

val ts = current_timestamp() 
    val df:SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd") 
    val date:String = df.format(ts.toLong) 

Scalaで文字列にタイムスタンプを変換する方法を?

答えて

0
val format = new java.text.SimpleDateFormat("yyyy-MM-dd") 
format.format(new java.util.Date()) 
+0

インポートjava.util.Date インポートjava.text.SimpleDateFormatの ヴァル形式=新しいjava.text.SimpleDateFormatの( "YYYY-MM-DD") ヴァルTS = format.format(新しいjava.util.Date( )) インポートorg.apache.spark.sql.functions._ヴァルAppendDF = myDF.withColumn( "timestamp_val"、TS) が見出さコンパイル中:文字列 [エラー]必須:org.apache.spark.sql .Column [エラー] val AppendDF = myDF.withColumn( "timestamp_val"、ts) [エラー] –

+0

java.lang.IllegalArgumentException:与えられたオブジェクトを日付としてフォーマットできません。 with code.format(current_timestamp()) –

+1

このコードは質問に答えるかもしれませんが、問題の内容とコードがどのように問題に取り組むかを記述することをお勧めします。将来的には、いくつかの情報、[すばらしい答えを解く方法](http://stackoverflow.com/help/how-to-answer)on Stack Overflowを参照してください。 – dirtydanee

1

それは、私はこのような私のデータフレームにタイムスタンプを付加してきた 、

val NewDF = oldDF.withColumn("newColumn_name",current_timestamp()) 

、私が予想よりも非常に簡単ですし、このような文字列にしてタイムスタンプをキャスト

val NewDF = oldDF.withColumn("newColumn_name",current_timestamp().cast("String")) 

鍬これは、いくつかを助けます。

ありがとうございました。

関連する問題