Как запустить graphx с Python / pyspark?

Я пытаюсь запустить Spark graphx с Python, используя pyspark. Моя установка кажется правильной, так как я могу запускать учебные пособия по pyspark и (Java) GraphX ​​без проблем. Предположительно, поскольку GraphX ​​является частью Spark, pyspark должен иметь возможность взаимодействовать с ним, верно?

Вот руководства для pyspark: http://spark.apache.org/docs/0.9.0/quick-start.html http://spark.apache.org/docs/0.9.0/python-programming-guide.html

Вот те, что для GraphX: http://spark.apache.org/docs/0.9.0/graphx-programming-guide.html http://ampcamp.berkeley.edu/big-data-mini-course/graph-analytics-with-graphx.html

Может ли кто-нибудь преобразовать учебник GraphX ​​на Python?


person Glenn Strycker    schedule 25.04.2014    source источник
comment
Есть несколько интересных обновлений по запросу Apache Jira issues.apache.org/jira/browse/ СПАРК-3789   -  person Glenn Strycker    schedule 11.11.2015


Ответы (3)


Похоже, привязки python к GraphX ​​задерживаются как минимум до Spark 1.4 1.5 ∞. Он ждет за Java API.

Вы можете отслеживать статус на странице Привязки SPARK-3789 GRAPHX Python для GraphX ​​- ASF JIRA

person Misty Nodine    schedule 20.02.2015
comment
Привет, Мисти, ты не знаешь, когда он выйдет? Я проверил, что он недоступен до сих пор даже на 1.5.1. - person sonus21; 13.10.2015
comment
Это ужасный позор. Кажется, что igraph-python тоже частично мертв. Есть ли другой вариант обработки больших графов в Python? - person eleanora; 09.02.2016

Вам следует взглянуть на GraphFrames (https://github.com/graphframes/graphframes), который охватывает алгоритмы GraphX под API DataFrames и предоставляет интерфейс Python.

Вот быстрый пример из https://graphframes.github.io/graphframes/docs/_site/quick-start.html с небольшими изменениями, чтобы он работал

первый запуск pyspark с загруженным пакетом graphframes

pyspark --packages graphframes:graphframes:0.1.0-spark1.6

код Python:

from graphframes import *

# Create a Vertex DataFrame with unique ID column "id"
v = sqlContext.createDataFrame([
  ("a", "Alice", 34),
  ("b", "Bob", 36),
  ("c", "Charlie", 30),
], ["id", "name", "age"])

# Create an Edge DataFrame with "src" and "dst" columns
e = sqlContext.createDataFrame([
  ("a", "b", "friend"),
  ("b", "c", "follow"),
  ("c", "b", "follow"),
], ["src", "dst", "relationship"])
# Create a GraphFrame
g = GraphFrame(v, e)

# Query: Get in-degree of each vertex.
g.inDegrees.show()

# Query: Count the number of "follow" connections in the graph.
g.edges.filter("relationship = 'follow'").count()

# Run PageRank algorithm, and show results.
results = g.pageRank(resetProbability=0.01, maxIter=20)
results.vertices.select("id", "pagerank").show()
person zhibo    schedule 01.05.2016
comment
Вы можете добавить больше объяснений, кроме ссылок - person Ian; 01.05.2016

В GraphX ​​0.9.0 пока нет Python API. Ожидается в следующих выпусках.

person Wildfire    schedule 26.04.2014
comment
Итак, в основном GraphX ​​- это система только для Scala, поскольку в ней также нет Java API? - person Matthew Cornell; 04.11.2014
comment
AFAIK это все еще только для Scala - person Wildfire; 05.11.2014
comment
На самом деле я думаю, что он у них есть. См. Здесь: github.com/amplab/graphx/tree/master/python/examples - person A T; 29.01.2015
comment
Первоначальная реализация ampab включала пару примеров, транзитивное закрытие и PageRank, но без использования фактического API GraphX, а только обычного API PySpark. GraphX ​​включает в себя множество удобных функций и классов, которые еще не доступны в Python. - person Javier de la Rosa; 07.02.2015
comment
Я только что обнаружил, что это сделано: github.com/kdatta/ spark / tree / SPARK-3789 / python / pyspark / graphx Возможно, он будет включен в следующий выпуск. - person Javier de la Rosa; 07.02.2015
comment
@JavierdelaRosa Это похоже на вилку. - person Evan Zamir; 27.07.2016
comment
@EvanZamir Я думаю, что теперь GraphFrames - это то, что нужно. - person Javier de la Rosa; 28.07.2016