Spark 2.0.0:SparkR CSV导入

时间:2016-07-29 12:37:55

标签: csv apache-spark spark-dataframe sparkr

我正在尝试将一个csv文件读入SparkR(运行Spark 2.0.0) - &试图尝试新增功能。

在这里使用RStudio。

我在阅读"时遇到错误源文件。

我的代码:

Sys.setenv(SPARK_HOME = "C:/spark-2.0.0-bin-hadoop2.6")
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sparkR.session(master = "local[*]", appName = "SparkR")
df <- loadDF("F:/file.csv", "csv", header = "true")

我在loadDF函数处遇到错误。

错误:

loadDF("F:/file.csv", "csv", header = "true")
  

invokeJava出错(isStatic = TRUE,className,methodName,...):         java.lang.reflect.InvocationTargetException           at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)           at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)           at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)           at java.lang.reflect.Constructor.newInstance(Constructor.java:422)           在org.apache.spark.sql.hive.client.IsolatedClientLoader.createClient(IsolatedClientLoader.scala:258)           在org.apache.spark.sql.hive.HiveUtils $ .newClientForMetadata(HiveUtils.scala:359)           在org.apache.spark.sql.hive.HiveUtils $ .newClientForMetadata(HiveUtils.scala:263)           在org.apache.spark.sql.hive.HiveSharedState.metadataHive $ lzycompute(HiveSharedState.scala:39)           在org.apache.spark.sql.hive.HiveSharedState.metadataHive(HiveSharedState.scala:38)           在org.apache.spark.sql.hive.HiveSharedState.externalCatalog $ lzycompute(HiveSharedState.scala:46)           在org.apache.spark.sql.hive.HiveSharedSt

我在这里错过了一些规格吗?任何指示继续进行将不胜感激。

2 个答案:

答案 0 :(得分:2)

我有同样的问题。 但这个简单的代码有类似的问题

createDataFrame(iris)

安装可能有些不对劲?

UPD。是的!我找到了解决方案。

此解决方案基于此:Apache Spark MLlib with DataFrame API gives java.net.URISyntaxException when createDataFrame() or read().csv(...)

对于R,只需通过此代码启动会话:

sparkR.session(sparkConfig = list(spark.sql.warehouse.dir="/file:C:/temp"))

答案 1 :(得分:0)

也许您应该尝试使用此库阅读CSV

https://github.com/databricks/spark-csv

Sys.setenv(SPARK_HOME = "C:/spark-2.0.0-bin-hadoop2.6")

library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))

sparkR.session(master = "local[*]", appName = "SparkR")  

Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.10:1.4.0" "sparkr-shell"')

sqlContext <- sparkRSQL.init(sc)

df <- read.df(sqlContext, "cars.csv", source = "com.databricks.spark.csv", inferSchema = "true")