2017-09-27 17 views
0

私は、日付の列を持つ色相にテーブルを持ってきました。私はRstudioのsparklyrを使ってそれを使って遊んでいます。sparklyrを使って文字列/ chrを日付に変換する

私はそうのような日付列に文字列を変換したい:

Weather_data = mutate(Weather_data, date2 = as.Date(date, "%m/%d/%Y")) 

、私がチェックしたときに、これは罰金実行されますが:

head(Weather_data) 

enter image description here

どのように私は正しくchrを日付に変換しますか?

ありがとう!!!!

+0

ことができます変換を適用する前に 'dput(Weather_data)'形式のデータを提供しますか? – useR

+0

あなたの答えをありがとう。申し訳ありませんが、私はRまたは色相を使用すると最高ではないので、私はあなたが何を意味するかはよく分かりません。しかし、私はデータを色相に持ってきたときに、日付として列の型を選択しようとしましたが、出力が表示されたときにはすべてNAsなので、代わりに文字列を使用しました – Keith

+0

'sdf_mutate(Weather_data、date2 = as.Date(date、"% m /%d /%Y "))' – Mako212

答えて

2

sparklyrは、Spark DateTypeを正しくサポートしていないという問題があります。日付を解析して書式を修正することは可能ですが、これらを適切なものとして表現することはできません。DateType十分であれば、以下の手順に従ってください。

スパーク2.2

以降のJava SimpleDataFormat互換文字列でto_dateを使用:

df <- copy_to(sc, data.frame(date=c("01/01/2010"))) 
parsed <- df %>% mutate(date_parsed = to_date(date, "MM/dd/yyyy")) 
parsed 
# Source: lazy query [?? x 2] 
# Database: spark_connection 
     date date_parsed 
     <chr>  <chr> 
1 01/15/2010 2010-01-15 

興味深いことに内部スパークオブジェクトがまだDateTypeカラム使用:以前のバージョンの

parsed %>% spark_dataframe 
<jobj[120]> 
    class org.apache.spark.sql.Dataset 
    [date: string, date_parsed: date] 

unix_timestampおよびcast(しかし、可能タイムゾーンの問題を見て):

df %>% 
    mutate(date_parsed = sql(
    "CAST(CAST(unix_timestamp(date, 'MM/dd/yyyy') AS timestamp) AS date)")) 
# Source: lazy query [?? x 2] 
# Database: spark_connection 
     date date_parsed 
     <chr>  <chr> 
1 01/15/2010 2010-01-15 

編集

この問題は、現在のマスター(sparklyr_0.7.0-9105)に解決されているように見えます:

# Source: lazy query [?? x 2] 
# Database: spark_connection 
     date date_parsed 
     <chr>  <date> 
1 01/01/2010 2009-12-31 
関連する問題