使用sparkr从hdfs导入rstudio中的csv文件

n9vozmp4  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(492)

我在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

请帮助我导入accounts.csv文件到rstudio使用sparkr。

uinbv5nw

uinbv5nw1#

你可以用 fread 系统的功能 data.table 从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", ...))

我希望这有帮助。

相关问题