【问题标题】:Can't read csv into Spark using spark_read_csv()无法使用 spark_read_csv() 将 csv 读入 Spark
【发布时间】:2024-05-16 17:30:02
【问题描述】:

我正在尝试使用 sparklyr 将 csv 文件读入 R。我可以使用 read.csv() 将 .csv 读入 R,但是当我尝试使用 spark_read_csv() 时它会崩溃。

accidents <- spark_read_csv(sc, name = 'accidents', path = '/home/rstudio/R/Shiny/accident_all.csv')

但是,当我尝试执行此代码时,我收到以下错误:

as.hexmode(xx) 中的错误:“x”不能强制转换为“hexmode”类

我通过谷歌搜索该错误并没有找到太多信息。任何人都可以阐明这里发生的事情吗?

【问题讨论】:

  • 你能提供一个可重现的例子吗?
  • 说实话,不确定。如果我知道该怎么做,会更新。

标签: r csv apache-spark sparklyr


【解决方案1】:

是的,本地 .csv 文件可以使用 spark_read_csv() 在 Spark 数据框中轻松读取。我在 Documents 目录中有一个.csv 文件,我已经使用以下代码 sn-p 读取了它。我觉得没有必要使用file:// 前缀。下面是sn-p:

Sys.setenv(SPARK_HOME = "C:/Spark/spark-2.0.1-bin-hadoop2.7/")
library(SparkR, lib.loc = "C:/Spark/spark-2.0.1-bin-hadoop2.7/R/lib")
library(sparklyr)
library(dplyr)
library(data.table)
library(dtplyr)

sc <- spark_connect(master = "local", spark_home = "C:/Spark/spark-2.0.1-bin-hadoop2.7/", version = "2.0.1")

Credit_tbl <- spark_read_csv(sc, name = "credit_data", path = "C:/Users/USER_NAME/Documents/Credit.csv", header = TRUE, delimiter = ",")

您只需调用对象名称Credit_tbl 即可查看数据框。

【讨论】: