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エラーを解読する方法を知らない。思考?私がチェックしたい
まず最初に、ファイルへのアクセス権で、それが付与されていますか? – mrjoseph