r - 使用sparkR从hdfs导入rstudio中的csv文件

标签 r csv hadoop hdfs sparkr

我在 Hadoop HDFS 上存储了 .csv 文件,

hadoop dfs -ls /afs
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.

17/01/12 15:15:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 1 item
-rw-r--r--   2 hduser supergroup  203572404 2017-01-10 12:04 /afs/Accounts.csv

我想使用 SparkR 将此文件导入 rstudio。

我尝试了以下命令:

sc<-sparkR.session(master = "spark://MasterNode:7077",appName = "SparkR",sparkHome = "/opt/spark")
sContext<- sparkRSQL.init(sc)
library(data.table)
library(dplyr)

df<- read.df(sContext, "hdfs://MasterNode:54310/afs/Accounts.csv")

发生以下错误:

> df<- read.df(sContext, "hdfs://MasterNode:54310/afs/Accounts.csv")
Error in handleErrors(returnStatus, conn) : 
  No status is returned. Java SparkR backend might have failed.
In addition: Warning message:
In writeBin(requestMessage, conn) : problem writing to connection

请帮助我使用 SparkR 将 Accounts.csv 文件导入 rstudio。

最佳答案

您可以使用data.table 库的fread 函数从HDFS 读取数据。您必须在系统中指定 hdfs 可执行文件的路径。例如,假设 hdfs 的路径是 /usr/bin/hdfs,您可以尝试这样的操作:

your_table <- fread("/usr/bin/hdfs dfs -text /afs/Accounts.csv")

如果您的“Accounts.csv”是一个目录,您也可以使用通配符 /afs/Accounts.csv/* 您还可以指定列类。例如:

your_table <- fread("/usr/bin/hdfs dfs -text /afs/Accounts.csv", fill = TRUE, header = TRUE, 
colClasses = c("numeric", "character", ...))

希望对您有所帮助。

关于r - 使用sparkR从hdfs导入rstudio中的csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41609856/

相关文章:

node.js - NodeJS : Parsing csv and returning the list through a promise

python - 如何检查文件夹中的文件是否与 .csv 文件中指定的文件名一致?

python - 标记数据时出错。 C 错误 : out of memory pandas python, 大文件 csv

networking - 分布式、错误处理、复制 TB 的数据

C# HDInsight MapReduce 将参数传递给映射器

r - initFields 中的错误(尺度 = 尺度): could not find function "initRefFields"

r - 在R中按顺序标记一系列值中的特定值

hadoop - mapreduce split和spark partition的区别

r - R中的PCA多图

r - 更改图例边框和图例标题之间的间距