Указание типа столбца в Sparklyr (spark_read_csv)

Я читаю csv в искру с помощью SpraklyR

schema <- structType(structField("TransTime", "array<timestamp>", TRUE),
                 structField("TransDay", "Date", TRUE))

 spark_read_csv(sc, filename, "path", infer_schema = FALSE, schema = schema)

Но получите:

Error: could not find function "structType"

Как указать типы столбцов с помощью spark_read_csv?

Заранее спасибо.


person Levi Brackman    schedule 24.03.2017    source источник


Ответы (2)


Функция structType взята из Scala SparkAPI в Sparklyr, чтобы указать тип данных, вы должны передать его в аргументе «столбец» в виде списка, предположим, что у нас есть следующий CSV (data.csv):

name,birthdate,age,height
jader,1994-10-31,22,1.79
maria,1900-03-12,117,1.32

Функция чтения соответствующих данных:

mycsv <- spark_read_csv(sc, "mydate", 
                          path =  "data.csv", 
                          memory = TRUE,
                          infer_schema = FALSE, #attention to this
                          columns = list(
                            name = "character",
                            birthdate = "date", #or character because needs date functions
                            age = "integer",
                            height = "double"))
# integer = "INTEGER"
# double = "REAL"
# character = "STRING"
# logical = "INTEGER"
# list = "BLOB"
# date = character = "STRING" # not sure

Для управления типом даты вы должны использовать функции даты улья, не функции R.

mycsv %>% mutate(birthyear = year(birthdate))

Ссылка: https://spark.rstudio.com/articles/guides-dplyr.html#hive-functions.

person Jader Martins    schedule 06.10.2017
comment
Есть идеи по поводу bigint / int64 / long? - person nachti; 18.12.2017
comment
@nachti перевод выполняется здесь. - person Jader Martins; 18.02.2018

у нас есть пример того, как это сделать, в одной из наших статей на официальном сайте sparklyr, вот ссылка: http://spark.rstudio.com/example-s3.html#data_import

person edgararuiz    schedule 24.03.2017
comment
404 - Мертвая ссылка - person nachti; 18.12.2017