读csv函数sparklyr错误

时间:2017-04-05 12:40:03

标签: r sparklyr

我正在尝试使用google计算群集中的sparklyr包将csv文件读入strudio。这是配置:

测试Spark框架
install.packages("sparklyr")
install.packages("dplyr")


library(sparklyr)
spark_install(version = "1.6.2")


 Sys.setenv(SPARK_HOME="/usr/lib/spark")
 config <- spark_config()

  sc <- spark_connect(master = "yarn-client", config=config ,version = "1.6.2")

在粘贴我将用于spark_read_csv函数的路径字符串之后,有一个错误指示“无效参数”。即使我没有点击保存按钮,它也会不断弹出。

知道我为什么会收到此错误?有趣的是,我刚刚在亚马逊EMR中尝试了相同的安装配置并遇到了同样的问题。

阿尔比特enter image description here

2 个答案:

答案 0 :(得分:0)

看起来您需要在name中的spark_read_csv参数周围使用引号。你试过吗?见?spark_read_csv

答案 1 :(得分:0)

我能够通过在hadoop上创建目录,将文件传输到hadoop / user /目录然后使用spark_read_csv函数来修复上一个错误:

  secondary_two_tbl <- spark_read_csv(sc, "SECONDARYtwo.csv", 
                      path =  "/user/ruser/secondary/")

然后我收到了一个新错误:

Error: org.apache.spark.sql.AnalysisException: It is not allowed to add database prefix `SECONDARYtwo` for the TEMPORARY view name.;
at org.apache.spark.sql.execution.command.CreateViewCommand.<init>(views.scala:79)
at org.apache.spark.sql.Dataset$$anonfun$createOrReplaceTempView$1.apply(Dataset.scala:2421)
at org.apache.spark.sql.Dataset$$anonfun$createOrReplaceTempView$1.apply(Dataset.scala:2415)
at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$withPlan(Dataset.scala:2603)
at org.apache.spark.sql.Dataset.createOrReplaceTempView(Dataset.scala:2415)
at org.apache.spark.sql.Dataset.registerTempTable(Dataset.scala:2385)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sparklyr.Handler.handleMethodCall(handler.scala:118)
at spar 

在此之后,我尝试删除&#34; .csv&#34;部分来自&#34; SECONDARYtwo.csv&#34;文件并再次运行spark_read_csv函数..

   tbl_secondary_two <- spark_read_csv(sc, "SECONDARYtwo", 
                      path =  "/user/ruser/secondary/")

这是最后一次有效。