Cloudera QuickStart VM で CentOS を使用しています。他の質問How to save DataFrame directly to Hive?に従って、sbt マネージド Spark アプリケーションを作成しました。.
build.sbt
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.2"
libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "1.5.2"
libraryDependencies += "org.apache.spark" % "spark-mllib_2.10" % "1.5.2"
libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.5.2"
libraryDependencies += "org.apache.spark" %% "spark-hive" % "1.5.2"
次のように DataFrame を Hive テーブルとして使用したいと思います。
recordDF.registerTempTable("mytempTable")
hiveContext.sql("create table productstore as select * from mytempTable");
エラーが発生していることに気付きました:
ルート スクラッチ ディレクトリ: /tmp/hive は書き込み可能である必要があります。現在のパーミッションは: rwx------
他の質問に従い、HDFS に設定chmod 777
しました。/tmp/hive
Spark がローカル ファイルシステム /tmp/hive を使用していることを知りました。
ローカルファイルシステムに対して chmod を実行しました。
今、私はエラーが発生しています
org.apache.hadoop.hive.ql.metadata.HiveException: MetaException (message:file:/user/hive/warehouse/productstore はディレクトリではないか、ディレクトリを作成できません)
HDFS ハイブ ウェアハウスに DataFrame を保存したいと思います。