2016-06-21 4 views
1

'01-FEB-2013'これは私の日付です。結果を01-Mar-2013とするにはどうすればよいですか?SqlContextを使用して月に月を追加したい

SELECT DATE_ADD('2011-01-01', INTERVAL 1 month);

mySql.Iはそれが可能ですScalaでsqlContextを使用して結果を望んでこれは可能ですか?

答えて

5

あなたはorg.apache.spark.sql.functions.add_monthsを使用したいと思うでしょう。ここ

def add_months(startDate: Column, numMonths: Int): Column 
"Returns the date that is numMonths after startDate." 

は、その使用方法の一例です:

scala> val df = sc.parallelize((0 to 6).map(i => 
     {now.setMonth(i); (i, new java.sql.Date(now.getTime))}).toSeq) 
     .toDF("ID", "Dates") 
df: org.apache.spark.sql.DataFrame = [ID: int, Dates: date] 

scala> df.show 
+---+----------+ 
| ID|  Dates| 
+---+----------+ 
| 0|2016-01-21| 
| 1|2016-02-21| 
| 2|2016-03-21| 
| 3|2016-04-21| 
| 4|2016-05-21| 
| 5|2016-06-21| 
| 6|2016-07-21| 
+---+----------+ 

scala> df.withColumn("New Dates", add_months(df("Dates"),1)).show 
+---+----------+----------+ 
| ID|  Dates| New Dates| 
+---+----------+----------+ 
| 0|2016-01-21|2016-02-21| 
| 1|2016-02-21|2016-03-21| 
| 2|2016-03-21|2016-04-21| 
| 3|2016-04-21|2016-05-21| 
| 4|2016-05-21|2016-06-21| 
| 5|2016-06-21|2016-07-21| 
| 6|2016-07-21|2016-08-21| 
+---+----------+----------+ 
+1

おかげで/その – Ajith

+0

いいえ問題を作業していない、あなたはこの答えが有用であることが分かっている場合してください[upvoteをevan058それを受け入れる](http://stackoverflow.com/help/someone-answers) –

+0

データがこの形式の2016-FEB-02で、2016-MAR-02に変更する必要がある場合。どのように解決するのですか? – Ajith

関連する問題