問題タブ [parquet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
7419 参照

scala - Spark: DataFrame.saveAsTable または DataFrameWriter.options で渡すことができるオプションは何ですか?

開発者にも API ドキュメントにも、どのオプションを渡すことができるか、DataFrame.saveAsTableまたはDataFrameWriter.optionsそれらが Hive テーブルの保存に影響するかについての参照は含まれていません。

この質問への回答で、Spark がテーブルを保存する方法をより詳細に制御したい Spark 開発者に役立つ情報を集約し、おそらく、Spark のドキュメントを改善するための基盤を提供できることを願っています。

0 投票する
0 に答える
764 参照

r - Spark DataFrame の SparkR collect() および head() エラー: 引数は異なる行数を意味します

HDFS システムから寄木細工のファイルを読み取りました。

この問題についていくつかのスレッドを読みました。しかし、それは私の場合ではありません。実際、寄木細工のファイルからテーブルを読み取っただけhead()ですcollect()。私の寄木細工のテーブルは次のようなものです:

私はspark-1.4.0-bin-hadoop2.6を使用しており、これをクラスターで実行します

ローカルでも試しましたが、同じ問題があります。

また、Scala でこの寄木細工のファイルを読み取ろうとしました。そして、collect() 操作を実行します。すべてがうまくいっているようです。したがって、SparkR に固有の問題である必要があります。

0 投票する
1 に答える
690 参照

python - Python での Parquet ファイルの処理

Python でハイブから寄木細工のテーブルを処理しようとしていますが、いくつかのデータ型の問題に直面しています。たとえば、ハイブ寄木細工のテーブルに aa フィールドがある場合

decimal (10,2)、Pythonでファイルを読み込もうとしているときにジャンク値を与えます。これについていくつか入力してください。

0 投票する
0 に答える
109 参照

cascading - 寄木細工-カスケーディング-寄木細工のシンクとして使用できません

テキスト ファイルを hfs の場所にある寄木細工のファイルに変換しようとしています。しかし、シンクを作成して例外を下回るという問題に直面しています。手伝ってください。

コードスニペット:

public static final Fields INPUT_FIELDS = new Fields("sample_int", "sample_str", "sample_date","sample_deci", "par_key");
スキーム sinkScheme = new ParquetTupleScheme(INPUT_FIELDS); タップ シンク = 新しい Hfs(sinkScheme, parqOutputPath);

パイプ アセンブリ = new Pipe("namecp"); アセンブリ = 新しい各 (アセンブリ、新しい UnpackTupleFunction());

フロー flow = new Hadoop2MR1FlowConnector().connect("namecp", inData, sink, assembly);

例外:

スレッド「メイン」の例外 cascading.flow.planner.PlannerException: タップの名前: 'namecp'、シンクとして使用できません: Hfs["ParquetTupleScheme[['sample_int', 'sample_str', 'sample_date', 'sample_deci', 'par_key']->[ALL]]"]["/user/cloudera/parquet_hive_cascade"] cascading.flow.planner.FlowPlanner.verifyTaps(FlowPlanner.java:379) で cascading.flow.planner.FlowPlanner.verifyAllTaps( FlowPlanner.java:266) cascading.flow.planner.FlowPlanner.buildFlow(FlowPlanner.java:169) cascading.flow.FlowConnector.connect(FlowConnector.java:456) cascading.flow.FlowConnector.connect(FlowConnector.java) :445) cascading.flow.FlowConnector.connect(FlowConnector.java:421) で cascading.flow.FlowConnector.connect(FlowConnector.java:270) で cascading.flow.FlowConnector.connect(FlowConnector.java:215)

================================================== ==========================

サンプルデータ:

1|abc-xy|14-12-25|12.34|20150101 2|fbcxy|14-12-05|2.4|20150201 3|fbscxy|14-11-05|0.422|20150301 3|fbscxy|14-11-15 |2.0|20150301

4|fbscxy|14-11-30|42|20150401

0 投票する
3 に答える
13043 参照

apache-spark - 新しい列を既存の寄木細工のファイルに追加する

既存の寄木細工のファイルに新しい列を追加する方法はありますか?

現在、kaggle コンテストに取り組んでおり、すべてのデータを寄木細工のファイルに変換しました。

これがケースで、寄木細工のファイルをpyspark DataFrameに読み込み、いくつかの機能抽出を行い、DataFrameに新しい列を追加しました

pysaprk.DataFrame.withColumn()。

その後、ソースの寄木細工のファイルに新しい列を保存したいと思います。

Spark SQL にはParquet schema evolutionが付属していることは知っていますが、この例ではキーと値のケースのみを示しています。

寄木細工の「追加」モードもうまくいきません。新しい行を寄木細工のファイルに追加するだけです。テーブル全体を再度生成する代わりに、既存の寄木細工のファイルに新しい列を追加する必要がある場合はどうすればよいですか? または、別の新しい寄木細工のファイルを生成し、ランタイムでそれらを結合する必要があります。

0 投票する
4 に答える
6350 参照

apache-spark - Spark が S3 に Parquet を書き込み、最後のタスクに永遠に時間がかかる

DataFrame から S3 に寄木細工のファイルを書いています。Spark UI を見ると、すべてのタスクを確認できますが、1 つのタスクは書き込み段階ですばやく完了しています (例: 199/200)。この最後のタスクは完了するのに永遠にかかるように見え、多くの場合、エグゼキューターのメモリ制限を超えているために失敗します。

この最後のタスクで何が起こっているのか知りたいです。それを最適化する方法は?ありがとう。

0 投票する
1 に答える
2515 参照

scala - Apache Spark を使用して MongoDB データを parquet ファイル形式に保存する

私はApache SparkとScalaプログラミング言語の初心者です。

私が達成しようとしているのは、ローカルの mongoDB データベースからデータを抽出し、Apache Spark と hadoop-connector を使用して寄木細工の形式で保存することです。

これまでの私のコードは次のとおりです。

問題は、データを寄木細工のファイル形式に保存するには、最初に mongoRDD 変数を Spark DataFrame に変換する必要があるということです。私はこのようなことを試しました:

私が得るエラーはこれです: Exception in thread "main" scala.MatchError: java.lang.Object (of class scala.reflect.internal.Types.$TypeRef$$anon$6)

データをparquet形式で保存できるように、RDDをDataFrameに変換する方法について他に何か考えはありますか?

mongoDB コレクション内の 1 つのドキュメントの構造は次のとおりです: https://gist.github.com/kingtrocko/83a94238304c2d654fe4

0 投票する
1 に答える
2609 参照

parquet - 寄木細工は同時書き込み操作をサポートできますか?

寄木細工のフォーマットへの分散同時書き込みを実行することは可能ですか?

また、書き込み中に寄木細工のファイルを読み取ることは可能ですか?

同時読み取り/書き込みの方法があれば、知りたいと思います。

よろしくお願いします。

0 投票する
1 に答える
2159 参照

apache-spark - Spark - 動的スキーマの場合にデータを Parquet ファイルに保存する

次のタイプの JavaPairRDD があります。

Tuple2<String, Iterable<Tuple2<String, Iterable<Tuple2<String, String>>>>>

次のオブジェクトを示します:
(Table_name, Iterable (Tuple_ID, Iterable (Column_name, Column_value)))

これは、RDD の各レコードが 1 つの Parquet ファイルを作成することを意味します。

ご想像のとおり、各オブジェクトを Table_name という名前の新しいParquetテーブルとして保存するという考え方です。このテーブルには、値Tuple_IDを格納するIDという 1 つの列があり、各列Column_nameには値Column_valueが格納されます。

私が直面している課題は、テーブルの列 (スキーマ) が実行時にオンザフライで収集されることと、Spark でネストされた RDD を作成できないため、以前の RDD 内で RDD を作成できないことです (もちろん、データフレームに変換した後、最終的にParquetファイルに保存します。

また、明らかな理由 (列/値を取得するために反復する必要がある) から、以前の RDD を DataFrame に変換することはできません。

一時的な回避策として、RDD を使用して RDD と同じ型のリストにフラット化しましたcollect()が、これは適切な方法ではありません。データがドライバー マシンの使用可能なディスク領域よりも大きくなり、メモリ不足が発生する可能性があるためです。

これを達成する方法について何かアドバイスはありますか?質問が十分に明確でない場合はお知らせください。

0 投票する
2 に答える
4336 参照

hadoop - 埋め込みモードで Spark - ユーザー/ハイブ/ウェアハウスが見つかりません

埋め込みローカル モードで Apache Spark を使用しています。pom.xmlと同じバージョン (spark-core_2.10、spark-sql_2.10、および spark-hive_2.10) にすべての依存関係が含まれています。

HiveQL クエリを実行してテーブル (Parquet として保存) を作成したいだけです。

次の(かなり単純な)コードを実行します。

...次の例外を返しています:

metastore_dbプロジェクトのルートに作成されたフォルダーが表示されます。

私は周りを検索しましたが、見つかった解決策は役に立ちませんでした-それらのほとんどは組み込みモード用ではありませんでした。

  • 1 つの解決策は、アクセス許可を確認することでした。私はすべてに同じユーザーを使用しています。
  • もう 1 つの解決策は、HDFS でフォ​​ルダーを手動で作成することでした。私は作成し、/user/hive/warehouse/test に移動できました。
  • 1 つの解決策は、次を追加してメタストアを手動で設定することでした sqlContext.sql("SET hive.metastore.warehouse.dir=hdfs://localhost:9000/user/hive/warehouse");

私は今アイデアを使い果たしています.誰かが他の提案を提供できますか?