GraphLoader edgeListFileでロードするグラフのエッジを表すsrcId - > dstId値を持つファイルがあります。ソースはユーザーと宛先アイテムを表しますいくつかの場合、srcIdとdstIdは等しいので、いくつかのアルゴリズムでは、各頂点のネイバーを収集したいときなどのエラーがあります。ユーザーとアイテムを分けて情報を失わないようにすることはできますかApache Spark Graphx:ソースとデスティネーションがVertexIdを共有していますが、別のものを返す
1
A
答えて
0
各GraphX頂点は一意の長い値で定義する必要があります。送信元IDと送信先IDが異なるものを表す場合は、それらが別個のものであることを確認するために、ある操作でそれらを変換する必要があります。たとえば、あなたがRDD[(Long, Long)]
にあなたのデータを読んでいる、あなたができると仮定すると:
import org.apache.spark.rdd.RDD
import org.apache.spark.graphx.{Edge, Graph}
val userMaxID = rdd.map(_._1).distinct.max
val edges: RDD[Edge[Int]] = rdd.map {
case (userID, itemID) => Edge(userID, itemID + userMaxID, 0)
}
val g = Graph.fromEdges(edges, 0)
その後、あなたはすべてのアイテムIDが元のID +ユーザーの最大のIDになりますグラフを持つことになります(場合IDは0にすることができます。追加する必要があります1)。
これは単なる示唆に過ぎないことに注意してください。アイデアは、IDがユーザーと同じIDを持つことができないようにIDを変換する必要があるということです。また、与えられた頂点がユーザかアイテムかを知る方法を保つこともできます。私の提案ではIDが< = userMaxID
のすべての頂点がユーザーになりますが、IDが>userMaxID
のすべての頂点はアイテムになります。
関連する問題
- 1. vertexId graphxを取得
- 2. Apache Spark Graphx - Javaインプリメンテーション
- 3. GraphX - どのように配列([VertexId、Array(VertexId)]をSet(VertexId)に変換するのですか?
- 4. コントロール共有のインスタンスが別のインスタンスとプロパティを共有していますか?
- 5. Spark、GraphxプログラムはCPUとメモリを使用していません
- 6. Apache 2:複数のウェブサイトが同じドメインを共有しています
- 7. SparkとBloomFilterの共有
- 8. spark graphx複数のエッジタイプ
- 9. GraphXが正常に動作しないSpark/Scala
- 10. ソースからデスティネーションまでの最小ステップ
- 11. 共有は私がのWhatsAppするコンテンツを共有していたときに、
- 12. Spark GraphXの新しいサンプルSSSPExample.scalaのテスト方法
- 13. Spark GraphX spark-shellとspark-submitパフォーマンスの差異
- 14. Apache Mesos:ディスク領域を共有していますか?
- 15. 別のjavascriptファイルが同じ機能を共有しています
- 16. ApacheとIIS 7が共に動作しています
- 17. Akka Streams、別のソースとしてアイテムをソースしますか?
- 18. ポリマー2.0スタイルモジュールの共有スタイルがウェブページにCSSソースを印刷します
- 19. ソースからデスティネーションへのファイルの置換
- 20. クロス・ソース・リソース共有の理解
- 21. 別のWebサーバーとともにApacheを実行していますか?
- 22. RPCがクライアント/サーバー間で共有されていてもRESTメソッドで共有されています
- 23. Spark GraphXメモリ不足エラー
- 24. Angular2共有コンポーネントが共有されていない共有コンポーネント
- 25. linux共有のCライブラリが共有されていません
- 26. Facebook共有ダイアログが空のメッセージを表示しています
- 27. 複数のWARが同じlogback.xmlを共有しています
- 28. 2つのプロセスが同じヒープを共有しています
- 29. Django 2つのアプリケーションがテンプレートを共有しています
- 30. 誰も私とlisternerパターンの例を共有することができます
これも私が思いついたのですが、item idの値が負の値に変更されました。たとえば、前に1 - > 1だったのですが、今は1 - > -1です。Graphxは負の頂点IDを許可します。 – user3224454
@ user3224454それは良い解決策です!私はGraphXが負のIDを許可していることを知らなかった、それは知っているのは良いことだ。 –