2017-04-05 3 views
0

J'essaie de lire un fichier CSV dans strudio avec le paquet sparklyr dans un cluster de calcul google. Ceci est la configuration:lire la fonction csv sparklyr erreur

cadre Spark Test
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") 

Il y a une erreur indiquant « Invalid argument » juste après avoir collé la chaîne de chemin que je vais utiliser pour la fonction spark_read_csv. Et il continue à apparaître même si je ne clique pas sur le bouton de sauvegarde.

Une idée de pourquoi je reçois cette erreur? Fait intéressant, j'ai juste essayé la même configuration d'installation dans Amazon EMR et avait le même problème.

Albit enter image description here

Répondre

0

Il semble que vous devez utiliser des guillemets autour de l'argument name dans spark_read_csv. Avez-vous essayé cela? Voir ?spark_read_csv

+0

Merci pour la suggestion schristel, mais j'ai utilisé le format indiqué dans le guide spack_read_csv et j'ai toujours des erreurs. Dans le cas de google compute, j'ai transféré le fichier dans l'espace de travail rstudio et essayé avec "file: // home/ruser/filename" et "file: /// home/ruser/filename". –

+0

D'accord, je ne peux pas aider à dépanner sans un exemple reproductible, mais bonne chance. Faites un suivi si vous trouvez la solution! – schristel

+0

Merci Schristel. Voici comment j'ai configuré la commande: secondary_two_tbl <- spark_read_csv (sc, "SECONDARYtwo.csv", path = "fichier: /// home/ruser/sparkly-blog") –

0

j'ai pu corriger l'erreur précédente en créant un répertoire à Hadoop, transférer le fichier à Hadoop/utilisateur/et puis en utilisant la fonction spark_read_csv:

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

Je suis une nouvelle erreur :

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 

Après cela, j'essayé d'enlever la partie ".csv" du fichier "SECONDARYtwo.csv" et lancez la fonction spark_read_csv à nouveau ..

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

Cette dernière fois cela a fonctionné.