我正在尝试将一个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
我在这里错过了一些规格吗?任何指示继续进行将不胜感激。
答案 0 :(得分:2)
我有同样的问题。 但这个简单的代码有类似的问题
createDataFrame(iris)
安装可能有些不对劲?
UPD。是的!我找到了解决方案。
对于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")