【问题标题】:Specifying col type in Sparklyr (spark_read_csv)在 Sparklyr (spark_read_csv) 中指定 col 类型
【发布时间】:2017-08-17 14:37:31
【问题描述】:

我正在使用 SpraklyR 将 csv 读入 spark

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 指定列类型?

提前致谢。

【问题讨论】:

    标签: r sparklyr


    【解决方案1】:

    structType 函数来自 Scala 的 SparkAPI,在 Sparklyr 中要指定数据类型,您必须将其作为列表传递到“column”参数中,假设我们有以下 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
    

    要操作日期类型,您必须使用 hive date functions,而不是 R 函数。

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

    参考:https://spark.rstudio.com/articles/guides-dplyr.html#hive-functions

    【讨论】:

    【解决方案2】:

    我们在官方 sparklyr 网站的一篇文章中提供了一个示例,链接如下:http://spark.rstudio.com/example-s3.html#data_import

    【讨论】:

    • 404 - 死链接
    猜你喜欢
    • 1970-01-01
    • 2019-07-02
    • 2017-07-13
    • 2019-03-11
    • 2017-11-01
    • 2017-11-02
    • 2020-06-21
    • 2022-07-28
    • 2021-12-09
    相关资源
    最近更新 更多