2014-04-25 19 views
24

Tôi đang cố chạy Spark graphx bằng Python sử dụng pyspark. Cài đặt của tôi xuất hiện chính xác, vì tôi có thể chạy các hướng dẫn pyspark và hướng dẫn GraphX ​​(Java) tốt. Có lẽ kể từ khi GraphX ​​là một phần của Spark, pyspark có thể giao tiếp được, đúng không?Làm cách nào để chạy graphx với Python/pyspark?

Dưới đây là các hướng dẫn cho pyspark: http://spark.apache.org/docs/0.9.0/quick-start.html http://spark.apache.org/docs/0.9.0/python-programming-guide.html

Dưới đây là những người cho 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

bất cứ ai có thể chuyển đổi các hướng dẫn GraphX ​​được bằng Python?

+0

Có là một số cập nhật thú vị trên vé Apache Jira http://issues.apache.org/jira/browse/SPARK-3789 –

Trả lời

19

Dường như các ràng buộc python vào GraphX ​​bị trễ ít nhất là Spark 1.4 1.5 ∞. Nó đang đợi phía sau API Java.

Bạn có thể theo dõi trạng thái ở SPARK-3789 GRAPHX Python bindings for GraphX - ASF JIRA

+0

Xin chào, Misty bạn có bất kỳ ý tưởng nào khi nó sẽ được phát hành không? Tôi đã kiểm tra nó không có sẵn cho đến bây giờ ngay cả trên 1.5.1. –

+1

Đây là một sự xấu hổ khủng khiếp. Có vẻ như igraph-python cũng bị chết một phần. Có tùy chọn nào khác để xử lý các đồ thị lớn trong python không? – eleanora

2

GraphX ​​0.9.0 chưa có API python. Dự kiến ​​trong các bản phát hành sắp tới.

+0

A ny cập nhật về điều này? Không phải là 1.1.0. –

+0

Vì vậy, về cơ bản GraphX ​​là một hệ thống chỉ có Scala vì nó không có một API Java? –

+0

AFAIK nó vẫn là Scala-chỉ – Wildfire

9

Bạn nên nhìn vào GraphFrames (https://github.com/graphframes/graphframes), mà kết thúc tốt đẹp các thuật toán GraphX ​​dưới DataFrames API và nó cung cấp giao diện Python.

Dưới đây là một ví dụ nhanh từ http://graphframes.github.io/quick-start.html, với sửa đổi chút ít để nó hoạt động

đầu tiên pyspark bắt đầu với pkg graphframes nạp

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

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

Bạn có thể giải thích thêm ngoài các liên kết – Ian

+3

@Tôi có thể chỉnh sửa bằng ví dụ hoạt động – zhibo

Các vấn đề liên quan