2017-05-31 15 views
0

hdfsからRのデータを読み込もうとしています。 sparklyrを使用しているときに苦労していることの1つは、エラーメッセージを解読することです...私はJavaプログラマーではないためです。sparklyrでspark_read_csvを使用しているときに "オブジェクトの無効なメソッドcsv"が表示される

この例で考えてみましょう:

をRでこれを行う

アワビのデータフレームを作成する - アワビは、機械学習の例に使用したデータセットである

load pivotal R package #contains abalone data and create dataframe 
if (!require(PivotalR)){ 
    install.packages(PivotalR) } 

data(abalone) 

#sample of data 
head(abalone) 

#export data to a CSV file 
if (!require(readr)){ 
    install.packages(readr) } 
write_csv(abalone,'abalone.csv') 
コマンドラインでこれを行う
hdfs dfs -put abalone.csv abalone.csv 
#check to see if the file is on the hdfs 
hdfs dfs -ls 

DOこれはR です。現在のバージョンのspark を使用するように設定されています。spark_homeを変更する必要があります

library(sparklyr) 
    library(SparkR) 
    sc = spark_connect(master = 'yarn-client', 
         spark_home = '/usr/hdp/current/spark-client', 
         app_name = 'sparklyr', 
         config = list(
         "sparklyr.shell.executor-memory" = "1G", 
         "sparklyr.shell.driver-memory" = "4G", 
         "spark.driver.maxResultSize"  = "2G" # may need to transfer a lot of data into R 
    ) 
    ) 

私たちがHDFSに書き込んだアワビファイルを読みます。 パスに合わせてパスを変更する必要があります。何が起こっているのか

Error: java.lang.IllegalArgumentException: invalid method csv for object 63 
     at sparklyr.Invoke$.invoke(invoke.scala:113) 
     at sparklyr.StreamHandler$.handleMethodCall(stream.scala:89) 
     at sparklyr.StreamHandler$.read(stream.scala:55) 
     at sparklyr.BackendHandler.channelRead0(handler.scala:49) 
     at sparklyr.BackendHandler.channelRead0(handler.scala:14) 
     at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) 
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308) 
     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294) 
     at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) 
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308) 
     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294) 
     at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:244) 
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308) 
     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294) 
     at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846) 
     at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) 
     at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) 
     at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) 
     at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) 
     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) 
     at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) 
     at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) 
     at java.lang.Thread.run(Thread.java:745) 

ないアイデア:

df <- spark_read_csv(sc,name='abalone',path='hdfs://pnhadoop/user/stc004/abalone.csv',delimiter=",", 
         header=TRUE) 

私は次のエラーを取得しています。以前はエラーなしでspark_read_csvを使用しました。私はjavaエラーを解読する方法を知らない。思考?私がチェックしたい

+0

まず最初に、ファイルへのアクセス権で、それが付与されていますか? – mrjoseph

答えて

1

スパーク2.1.0

sparkR.session(sparkConfig = list(),enableHiveSupport= FALSE) 
df1 <- read.df(path="hdfs://<yourpath>/*",source="csv",na.strings = "NA", delimiter="\u0001") 
head(df1) 
関連する問題