Bạn có thể chạy mã Python qua ống trong Spark. Với pipe(), bạn có thể viết một phép biến đổi RDD đọc từng phần tử RDD từ đầu vào tiêu chuẩn như String, thao tác String theo lệnh script và sau đó ghi kết quả là String vào đầu ra tiêu chuẩn.
SparkContext.addFile (đường dẫn), chúng tôi có thể thêm danh sách tệp cho mỗi nút công nhân để tải xuống khi bắt đầu công việc Spark.Tất cả nút công nhân sẽ có bản sao của tập lệnh, do đó chúng tôi sẽ nhận được thao tác song song bằng đường ống. Chúng ta cần phải cài đặt tất cả các thư viện và sự phụ thuộc trước khi nó trên tất cả các nút công nhân và người thực hiện.
Ví dụ:
Python file: Mã để làm dữ liệu đầu vào thành chữ hoa
#!/usr/bin/python
import sys
for line in sys.stdin:
print line.upper()
Spark Mã: Đối với Piping dữ liệu
val conf = new SparkConf().setAppName("Pipe")
val sc = new SparkContext(conf)
val distScript = "/path/on/driver/PipeScript.py"
val distScriptName = "PipeScript.py"
sc.addFile(distScript)
val ipData = sc.parallelize(List("asd","xyz","zxcz","sdfsfd","Ssdfd","Sdfsf"))
val opData = ipData.pipe(SparkFiles.get(distScriptName))
opData.foreach(println)
Nguồn
2015-10-06 19:33:23
tôi sẽ đề nghị viết lại mã của bạn trong PySpark nhưng không phải tất cả các thư viện Python s có thể lấy tỷ lệ. Bạn đang sử dụng thư viện Python nào? – Michal
Bạn có wan kết quả của các hoạt động Spark, hoặc bạn muốn RDD thô để thao tác trong Python.Trước đây không chỉ có thể, nó phổ biến trong thế giới của Big Data. Việc viết một trình cắm thêm Python cho kết quả Spark đòi hỏi phải chú ý đến từng chi tiết, nhưng thường là một giải pháp tốt. Tìm kiếm trên Internet của bạn không bật thông tin này như thế nào? Bạn đã sử dụng cụm từ tìm kiếm nào? http://stackoverflow.com/help/how-to-ask. Vui lòng đăng API Spark của bạn và cấp độ Python bạn muốn giao tiếp với nó. – Prune
Tôi muốn sử dụng [Jieba] (https://github.com/fxsjy/jieba) để xử lý văn bản, đó là thư viện phân đoạn từ tiếng Trung. Và tôi sử dụng Spark Streaming + Kafka để thu thập dữ liệu. Bây giờ vấn đề là tôi cần phải đường ống dữ liệu thô cho Python để thực hiện xử lý văn bản, sau đó gửi kết quả lại cho mã Scala khác để phân tích khác. –