Tôi đã viết một ứng dụng Flask đơn giản để chuyển một số dữ liệu sang Spark. Kịch bản hoạt động trong Máy tính xách tay IPython, nhưng không phải khi tôi cố gắng chạy nó trong máy chủ riêng của nó. Tôi không nghĩ rằng bối cảnh Spark đang chạy trong kịch bản. Làm cách nào để tôi có được Spark hoạt động trong ví dụ sau?Truy cập vào ứng dụng Flask từ Flask
from flask import Flask, request
from pyspark import SparkConf, SparkContext
app = Flask(__name__)
conf = SparkConf()
conf.setMaster("local")
conf.setAppName("SparkContext1")
conf.set("spark.executor.memory", "1g")
sc = SparkContext(conf=conf)
@app.route('/accessFunction', methods=['POST'])
def toyFunction():
posted_data = sc.parallelize([request.get_data()])
return str(posted_data.collect()[0])
if __name__ == '__main_':
app.run(port=8080)
Trong máy tính xách tay IPython Tôi không xác định SparkContext
vì nó được cấu hình tự động. Tôi không nhớ làm thế nào tôi đã làm điều này, tôi theo một số blog.
Trên máy chủ Linux, tôi đã đặt .py luôn chạy và cài đặt Spark mới nhất bằng cách làm theo bước 5 của this guide.
Sửa:
Theo lời khuyên của davidism bây giờ tôi đã thay viện đến các chương trình đơn giản với sự gia tăng độ phức tạp để bản địa hoá lỗi.
Trước hết tôi tạo py chỉ với kịch bản từ câu trả lời dưới đây (sau khi điều chỉnh một cách thích hợp các liên kết):
import sys
try:
sys.path.append("your/spark/home/python")
from pyspark import context
print ("Successfully imported Spark Modules")
except ImportError as e:
print ("Can not import Spark Modules", e)
này trả về "Modules Spark nhập thành công". Tuy nhiên, file py hôm sau tôi đã trở lại là một ngoại lệ:
from pyspark import SparkContext
sc = SparkContext('local')
rdd = sc.parallelize([0])
print rdd.count()
này trả ngoại lệ:
"Quá trình Java cổng thoát trước khi gửi người lái xe số cổng của nó"
tìm kiếm xung quanh các vấn đề tương tự Tôi tìm thấy this page nhưng khi tôi chạy mã này không có gì xảy ra, không in trên bàn điều khiển và không có thông báo lỗi. Tương tự, this cũng không giúp được gì, tôi nhận được cùng một ngoại lệ cổng Java như trên. Tôi cũng đã cài đặt anaconda khi tôi nghe điều này có thể giúp đoàn kết trăn và java, một lần nữa không thành công ...
Bất kỳ đề xuất nào về những gì cần thử tiếp theo? Tôi đang thua lỗ.
lưu ý rằng tôi được đăng trên máy tính của tôi với ipython Máy tính xách tay bằng cách sử dụng phần mở rộng restclient trên firefox và nó làm việc như mong đợi – Matt
gì không làm việc? Có lỗi không? Bạn đăng dữ liệu như thế nào? Làm thế nào để bạn chạy máy chủ? Bạn đang chạy trong chế độ gỡ lỗi? Vui lòng [chỉnh sửa] để bao gồm [mcve]. – davidism
Tôi đã chỉnh sửa câu hỏi – Matt