我正在尝试将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")
调用Java时出错(isStatic=TRUE,className,methodName,…):java.lang.reflect.InvocationTargetException在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:62)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessor Impl.java:45)位于java.lang.reflect.Constructure.newInstance(Constructor.java:422)网址:org.apache.spark.sql.hive.client.IsolatedClientLoader.createClient(IsolatedClientLoade.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
我是不是遗漏了一些规格?如有任何指示,我们将不胜感激。
我也有同样的问题。但这个简单代码的类似问题
createDataFrame(iris)
安装时可能有问题?
UPD。是的!我找到了解决方案。
此解决方案基于此:带有DataFrame API的Apache Spark MLlib在createDataFrame()或read().csv(…)时提供java.net.URISyntaxException
对于R,只需通过以下代码启动会话:
sparkR.session(sparkConfig = list(spark.sql.warehouse.dir="/file:C:/temp"))
也许你应该尝试用这个库读取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")