0

我正在尝试使用谷歌计算集群中的 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 中尝试了相同的安装配置并遇到了同样的问题。

阿尔比特在此处输入图像描述

4

2 回答 2

0

看起来您需要namespark_read_csv. 你试过吗?看?spark_read_csv

于 2017-04-05T14:12:23.567 回答
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 

在此之后,我尝试从“SECONDARYtwo.csv”文件中删除“.csv”部分并再次运行 spark_read_csv 函数。

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

这最后一次奏效了。

于 2017-04-06T03:17:00.157 回答