如何在RStudio上将csv文件加载到SparkR?以下是我在RStudio上运行SparkR时必须执行的步骤。我用read.df读取.csv不知道怎么写这个。不确定此步骤是否被视为创建RDD。
i = False
val1 = []
while i == False:
if val1 != 0:
val1 = eval(input("Enter an integer, the value ends if it is 0: "))
else:
i = True
print(val1)
我收到错误:
#Set sys environment variables
Sys.setenv(SPARK_HOME = "C:/Users/Desktop/spark/spark-1.4.1-bin-hadoop2.6")
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
#Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.10:1.0.3" "sparkr-shell"')
#Load libraries
library(SparkR)
library(magrittr)
sc <- sparkR.init(master="local")
sc <- sparkR.init()
sc <- sparkR.init(sparkPackages="com.databricks:spark-csv_2.11:1.0.3")
sqlContext <- sparkRSQL.init(sc)
data <- read.df(sqlContext, "C:/Users/Desktop/DataSets/hello_world.csv", "com.databricks.spark.csv", header="true")
答案 0 :(得分:3)
Spark 2.0.0 + :
您可以使用csv数据源:
loadDF(sqlContext, path="some_path", source="csv", header="true")
不加载spark-csv
。
原始回答:
据我所知,你使用的是spark-csv
的错误版本。 Spark的预构建版本使用的是Scala 2.10,但您使用的是Spark CSV for Scala 2.11。试试这个:
sc <- sparkR.init(sparkPackages="com.databricks:spark-csv_2.10:1.2.0")
答案 1 :(得分:1)
我通过提供commons-csv-1.2.jar和spark-csv包来成功解决了这个问题。
显然,spark-csv使用commons-csv但不包含它。
使用以下SPARKR_SUBMIT_ARGS解决了问题(我使用--jars而不是--packages)。
Sys.setenv('SPARKR_SUBMIT_ARGS'='"--jars" "/usr/lib/spark-1.5.1-bin-hadoop2.6/lib/spark-csv_2.11-1.2.0.jar,/usr/lib/spark-1.5.1-bin-hadoop2.6/lib/commons-csv-1.2.jar" "sparkr-shell"')
事实上,相当模糊的错误
Error in writeJobj(con, object) : invalid jobj 1
更明确的是直接使用R shell代替R Studio并明确说明
java.lang.NoClassDefFoundError: org/apache/commons/csv/CSVFormat
可以在此处找到所需的commons-csv jar:https://commons.apache.org/proper/commons-csv/download_csv.cgi
答案 2 :(得分:1)
我感谢大家的输入和解决方案!我想出了将.csv文件加载到SparkR RStudio的另一种方法。这是:
#set sc
sc <- sparkR.init(master = "local")
sqlContext <- sparkRSQL.init(sc)
#load .csv
patients <- read.csv("C:/...") #Insert your .csv file path
df <- createDataFrame(sqlContext, patients)
df
head(df)
str(df)