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
ことができます変換を適用する前に 'dput(Weather_data)'形式のデータを提供しますか? – useR
あなたの答えをありがとう。申し訳ありませんが、私はRまたは色相を使用すると最高ではないので、私はあなたが何を意味するかはよく分かりません。しかし、私はデータを色相に持ってきたときに、日付として列の型を選択しようとしましたが、出力が表示されたときにはすべてNAsなので、代わりに文字列を使用しました – Keith
'sdf_mutate(Weather_data、date2 = as.Date(date、"% m /%d /%Y "))' – Mako212