Pyspark và Cassandra secure pack.zip
Tôi mới sử dụng công nghệ pyspark cassandra này, tôi đã tìm thấy rất nhiều tài nguyên về Spark.sql trong pyspark và tôi nghĩ điều đó thật tuyệt, nhưng tôi vẫn bị mắc kẹt ở mức độ kết nối với cơ sở dữ liệu của mình vì tôi cần một secure-bundle.zip từ datastax để kết nối. Vì vậy, ở đây tôi tiếp tục với các câu hỏi của mình:
Tôi hiểu đây là cách để kết nối với cơ sở dữ liệu từ xa của tôi với pyspark shell:
pyspark --packages com.datastax.spark:spark-cassandra-connector_2.11:2.5.1\
--files path_to/secure-connect-test.zip \
--conf spark.cassandra.connection.config.cloud.path=secure-connect-test.zip \
--conf spark.cassandra.auth.username=UserName \
--conf spark.cassandra.auth.password=Password \
--conf spark.dse.continuousPagingEnabled=false
Tôi đã tải xuống các tệp jar cho com.datastax.spark:spark-cassandra-connector_2.11:2.5.1, vì vậy tôi đã sao chép các lọ đó vào thư mục spark / jar của mình (đúng vậy, đúng không?)
Sau đó, các lệnh spark shell của tôi kết thúc như sau:
pyspark --files path_to/secure-connect-test.zip \
--conf spark.cassandra.connection.config.cloud.path=secure-connect-test.zip \
--conf spark.cassandra.auth.username=UserName \
--conf spark.cassandra.auth.password=Password \
--conf spark.dse.continuousPagingEnabled=false
Bây giờ, tôi hiểu tất cả mã pyspark là một API để điều khiển tia lửa, sau đó, tất cả các lệnh ở trên có thể được viết lại bằng mã pyspark, các --conftham số tôi hiểu có liên quan đến .config(value, value):
sparkSession=SparkSession.builder.appName('SparkCassandraApp').config('spark.cassandra.connection.host', 'localhost')
Vì vậy, câu hỏi của tôi là, làm thế nào để thêm tệp zip của tôi?
Tôi đã thấy cách tải tệp lên phiên spark của mình, trong mã pyspark, sẽ có SparkContext.addFile()nhưng tôi bối rối vì tôi phải đặt SparkContext trước Phiên Spark, vì vậy tôi có phải đặt SparkContext, thêm tệp của mình không và sau đó thêm lại SparkSession ngay cả khi tôi lặp lại các giá trị giống nhau? hoặc tôi có thể thêm tệp bó.zip chỉ trong Phiên Spark bằng cách thêm đường dẫn nguồn không?
Xin hãy giúp đỡ, tôi chỉ muốn có một tầm nhìn rõ ràng về tia lửa và cách hoạt động của nó
Cảm ơn
Trả lời
nếu bạn đang sử dụng --files, thì Spark sẽ tải tệp cục bộ lên cụm và cung cấp tệp đó cho tất cả những người thực thi, giống như được thực hiện thông qua .addFile. Trong trường hợp này, bạn có thể chỉ định tên tệp qua spark.cassandra.connection.config.cloud.path. Bạn không cần phải sao chép tệp vào thư mục lọ, v.v. - nó có thể nằm ở nơi nó được tải xuống.
như được mô tả trong bài đăng blog mà tôi đã tham khảo , tệp cũng có thể được đặt trên bất kỳ vị trí nào có thể truy cập được từ tất cả các trình thực thi, chẳng hạn như S3 / HDFS / HTTP / ... - trong trường hợp này, spark.cassandra.connection.config.cloud.pathcó thể chỉ đến vị trí đó mà không cần chỉ định thông qua --files. Nếu bạn đã sao chép tệp cho tất cả các trình thực thi, thì bạn cũng có thể sử dụng đường dẫn đầy đủ đến tệp đó dưới dạngfile://path-to-secure-bundle