Open storage MaxCompute memungkinkan Spark menggunakan connector untuk memanggil Storage API dan membaca data langsung dari MaxCompute. Pendekatan ini menyederhanakan proses pembacaan data serta meningkatkan kinerja akses. Integrasi Spark dengan penyimpanan data MaxCompute menyediakan kemampuan pemrosesan dan analisis data yang efisien, fleksibel, dan andal.
Lingkup
Saat mesin pihak ketiga mengakses MaxCompute:
Anda dapat membaca data dari tabel standar, tabel partisi, tabel terkluster, Delta Tables, dan tampilan yang di-materialisasi.
Anda tidak dapat membaca data dari tabel eksternal MaxCompute atau tampilan logis.
Connector tidak mendukung pembacaan tipe data JSON.
Prosedur
Beli kelompok sumber daya eksklusif untuk Data Transmission Service (subscription) .
Deploy lingkungan pengembangan Spark.
Klik Spark untuk mengunduh paket Spark versi
Spark 3.2.x - Spark 3.5.x, lalu ekstrak ke folder lokal.Untuk membangun lingkungan pengembangan Spark pada sistem operasi Linux, lihat Buat lingkungan pengembangan Linux.
Untuk membangun lingkungan pengembangan Spark pada sistem operasi Windows, lihat Buat lingkungan pengembangan Windows.
Unduh dan kompilasi Spark connector. Saat ini, hanya versi Spark 3.2.x hingga 3.5.x yang didukung. Topik ini menggunakan Spark 3.3.1 sebagai contoh.
Gunakan perintah
git cloneuntuk mengunduh paket Spark connector. Pastikan Git telah diinstal di lingkungan Anda; jika tidak, kesalahan akan terjadi saat menjalankan perintah tersebut.## 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 connector. 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.
Di folder
confinstalasi Spark Anda, buat filespark-defaults.conf:cd $SPARK_HOME/conf vim spark-defaults.confTambahkan informasi akun berikut ke 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 katalog MaxCompute. 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.OdpsExtensionsAkses MaxCompute melalui Spark connector.
Jalankan perintah berikut di folder
bininstalasi Spark Anda untuk memulai klien Spark SQL:cd $SPARK_HOME/bin spark-sqlKueri tabel dalam proyek MaxCompute:
SHOW tables in odps.doc_test;doc_testadalah contoh nama proyek MaxCompute. Ganti dengan nama proyek MaxCompute 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;Output berikut dikembalikan:
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;