1

そこで、Pig XMLloader を使用して Vertex データと Edge データを表す 2 つの XML ファイルを Hadoop/HDFS にロードし、そこから Hive テーブルを作成しました。

この頂点とエッジのデータを使用して、Spark GraphX ベースのグラフ データベースを作成したいと考えています。Spark GraphX のドキュメントから、フラット ファイル ソースに加えて、HBASE テーブルを使用して Spark GraphX をソースできることを理解しました。Hive などの他の構造化されたビッグ データ ソースの使用に関する Spark GraphX のドキュメントは見つかりませんでした。

ただし、SparkSQL では、構造化データのソースとして Hive がサポートされています。JSON 構造化データも SparkSQL 内でサポートされています。

SparkSQL での Hive のサポートは、HiveContext を使用する Hive が Spark GraphX でネイティブにサポートされることも意味しますか? .jsonFile(name.json) をソースとして使用して VertexRDD を作成するための JSON ソース ファイルの使用についてはどうですか?

4

2 に答える 2

0

SchemaRDD私が見ることができる唯一の解決策は、あなたが説明したアプローチの1つを使用して1つ以上の を作成し、SchemaRDD拡張するという事実を利用することですRDD[Row]。次に、通常の Spark および GraphX のアプローチを使用して、必要なものに変換できます。

残念ながら、Rowいくつかの欠点があります。これは「開発者 API」としてマークされており、期待どおりに文書化されています。また、フィールドを名前で検索することはできず、位置的に検索する必要があるため、使用するのが最も友好的ではありません。基本的には単に extendsSeq[Any]です。フィールドの抽出に使用したクエリに従ってフィールドの位置を推測するか、メソッドを呼び出してからスキーマ (a Seq[StructField])の表現を取得できます。スキーマで必要なフィールドを見つけると、行の対応する位置に表示されます!SchemaRDDschema

ここで以前の質問に答えながら、私が書いたいくつかのコードでこのアプローチを使用しているのを見ることができる場合に役立ちます。開発者 API をこれほど多く利用することを推奨しているわけではありません。薄氷の上を滑走することになるでしょうが、それはおそらくあなたがする必要があることです。

于 2015-01-21T17:33:42.363 に答える
0

ありがとうスピロ。SchemaRDD は確かに進むべき道です。

HortonWorks ディストリビューションを使用して、Apache Spark をバージョン 1.2 にアップグレードしました。このディストリビューションでは、HCatalog のテーブルにアクセスする SchemaRDD を使用して、Spark hiveContext で Hive テーブルがサポートされます。

于 2015-01-31T09:28:06.323 に答える