2014-04-25 37 views
24

Próbuję uruchomić Spark graphx z Python za pomocą pyspark. Moja instalacja wydaje się być poprawna, ponieważ jestem w stanie uruchomić tutoriale Pyspark i tutoriale (Java) GraphX. Przypuszczalnie od tego, że GraphX ​​jest częścią Sparka, pyspark powinien być w stanie go połączyć, prawda?Jak uruchomić graphx z Python/pyspark?

Oto tutoriale do pyspark: http://spark.apache.org/docs/0.9.0/quick-start.html http://spark.apache.org/docs/0.9.0/python-programming-guide.html

Tu są te, dla 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

ktoś może konwertować samouczek GraphX ​​być w Pythonie?

+0

Istnieje są interesujące aktualizacje na bilet Apache Jira http://issues.apache.org/jira/browse/SPARK-3789 –

Odpowiedz

19

Wygląda wiązaniami Pythonie GraphX ​​są opóźnione co najmniej do Spark 1,4 1,5 ∞. Czeka za Java API.

Możesz śledzić status na SPARK-3789 GRAPHX Python bindings for GraphX - ASF JIRA

+0

Witam, Misty czy masz jakiś pomysł, kiedy zostanie wydany? Sprawdziłem, że nie jest on dostępny aż do teraz, nawet w wersji 1.5.1. –

+1

To straszny wstyd. Wydaje się, że igraph-python również jest częściowo martwy. Czy istnieje jakakolwiek inna opcja obsługi dużych wykresów w python? – eleanora

2

GraphX ​​0.9.0 nie ma jeszcze Pythona API. Jest to oczekiwane w nadchodzących wydaniach.

+0

A ny aktualizacja na ten temat? Nie jest to 1.1.0. –

+0

Więc zasadniczo GraphX ​​jest systemem tylko Scala, ponieważ nie ma on również API Java? –

+0

AFAIK nadal jest to tylko Scala – Wildfire

9

Należy spojrzeć na GraphFrames (https://github.com/graphframes/graphframes), która owija algorytmy GraphX ​​pod DataFrames API i zapewnia interfejs Pythona.

Oto krótki przykład z http://graphframes.github.io/quick-start.html, z niewielkimi zmianami, tak, że działa

pierwszy start pyspark z graphframes pkg ładowane

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

kodu Pythona:

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() 
+0

Można umieścić więcej wyjaśnień niż linki – Ian

+3

@Ian edytowane z przykładem pracy – zhibo