spark-sqlを使用してファイルを読み込む必要があり、そのファイルは現在のディレクトリにあります。Spark-SQL:現在のワーカーノードディレクトリにあるファイルにアクセスする
このコマンドを使用して、HDFSに保存されているファイルのリストを解凍します。
val decompressCommand = Seq(laszippath, "-i", inputFileName , "-o", "out.las").!!
ファイルは、現在のワーカーノード・ディレクトリーに出力され、スカラ座を通じて"ls -a"!!
を実行し、私はファイルがあることがわかりますので、私はこれを知っています。私は、次のコマンドでそれにアクセスしよう:
val dataFrame = sqlContext.read.las("out.las")
私は、SQLコンテキストが現在のディレクトリ内のファイルを検索しようとすると仮定し、それはしません。また、エラーは発生しませんが、ファイルが見つからないという警告が表示されます(スパークが実行され続けます)。
sparkContext.addFile("out.las")
を使用してファイルを追加しようとしましたが、val location = SparkFiles.get("out.las")
を使用してその場所にアクセスしましたが、これも機能しませんでした。
私はコマンドval locationPt = "pwd"!!
を実行してからval fullLocation = locationPt + "/out.las"
を実行してもその値を使用しようとしましたが、どちらも動作しませんでした。
スローされます実際の例外は次のとおりです。
User class threw exception: org.apache.spark.sql.AnalysisException: cannot resolve 'x' given input columns: [];
org.apache.spark.sql.AnalysisException: cannot resolve 'x' given input columns: []
そして、私はデータフレームから列の「x」にアクセスしようとすると、これは起こります。私はHDFSからいくつかのファイルをダウンロードし、ローカルに解凍していくつかのテストを実行したので、列 'X'が存在することを知っています。
私は1.6TBのデータを持っているので、ファイルを1つずつ解凍する必要があるので、一度に解凍して後でアクセスすることはできません。
ワーカーノードディレクトリに出力されているファイルにアクセスするために何ができるか教えてください。それとも、別のやり方でやるべきだろうか?
二重の感嘆符は何ですか? –
反転したコンマのコマンドは、外部システムコマンドとして実行されます。 –