Open Storage MaxCompute memungkinkan Spark menggunakan connector untuk memanggil Storage API dan membaca data langsung dari MaxCompute. Pendekatan ini menyederhanakan proses pembacaan data sekaligus meningkatkan kinerja akses. Dengan mengintegrasikan kemampuan penyimpanan data MaxCompute, Spark menyediakan pemrosesan dan analisis data yang efisien, fleksibel, serta andal.
Catatan penggunaan
Saat mesin pihak ketiga mengakses MaxCompute:
Anda dapat membaca tabel standar, tabel partisi, tabel terkluster, Delta Tables, dan tampilan yang di-materialisasi.
Anda tidak dapat membaca tabel eksternal MaxCompute atau tampilan logis.
Tipe data JSON tidak didukung untuk dibaca.
Prosedur
Beli kelompok sumber daya Data Transmission Service berlangganan.
Deploy lingkungan developer Spark.
Gunakan paket Spark versi
Spark 3.2.x - Spark 3.5.x. Anda dapat mengunduh paket tersebut melalui Spark dan mengekstraknya ke folder lokal.Untuk menyiapkan lingkungan pada sistem operasi Linux, lihat Menyiapkan lingkungan developer Linux.
Untuk menyiapkan lingkungan pada sistem operasi Windows, lihat Menyiapkan lingkungan developer Windows.
Unduh dan kompilasi Spark connector. (Hanya Spark 3.2.x hingga 3.5.x yang didukung. Topik ini menggunakan Spark 3.3.1 sebagai contoh.)
Jalankan perintah
git cloneuntuk mengunduh paket instalasi Spark connector. Pastikan Git telah diinstal di lingkungan Anda; jika tidak, perintah tersebut akan menghasilkan error.## Unduh Spark connector: git clone https://github.com/aliyun/aliyun-maxcompute-data-collectors.git ## Beralih ke folder spark-connector cd aliyun-maxcompute-data-collectors/spark-connector ## Kompilasi mvn clean package ## Lokasi paket JAR Datasource datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar ## Salin paket JAR Datasource ke folder $SPARK_HOME/jars/ cp datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar $SPARK_HOME/jars/Konfigurasikan informasi akses akun MaxCompute Anda.
Di folder
confSpark, buat filespark-defaults.conf:cd $SPARK_HOME/conf vim spark-defaults.confKonfigurasikan informasi akun dalam file
spark-defaults.conf:## Konfigurasikan akun di spark-defaults.conf spark.hadoop.odps.project.name=doc_test spark.hadoop.odps.access.id=L******************** spark.hadoop.odps.access.key=******************* spark.hadoop.odps.end.point=http://service.cn-beijing.maxcompute.aliyun.com/api spark.hadoop.odps.tunnel.quota.name=ot_xxxx_p#ot_xxxx ## Konfigurasikan MaxCompute Catalog spark.sql.catalog.odps=org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog spark.sql.extensions=org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensionsGunakan Spark connector untuk mengakses MaxCompute.
Jalankan perintah berikut di folder
binSpark untuk memulai client Spark SQL:cd $SPARK_HOME/bin spark-sqlKueri tabel-tabel dalam proyek MaxCompute:
SHOW tables in odps.doc_test;doc_testadalah contoh nama proyek MaxCompute. Gantilah dengan nama proyek aktual Anda.Buat tabel:
CREATE TABLE odps.doc_test.mc_test_table (name STRING, num BIGINT);Baca data dari tabel:
SELECT * FROM odps.doc_test.mc_test_table;Buat tabel partisi:
CREATE TABLE odps.doc_test.mc_test_table_pt (name STRING, num BIGINT) PARTITIONED BY (pt1 STRING, pt2 STRING);Baca data dari tabel partisi:
SELECT * FROM odps.doc_test.mc_test_table_pt;Kode berikut memberikan contoh hasilnya:
test1 1 2018 0601 test2 2 2018 0601 Time taken: 1.312 seconds, Fetched 2 row(s)Hapus tabel:
DROP TABLE IF EXISTS odps.doc_test.mc_test_table;