Le stockage ouvert MaxCompute permet à Spark d'utiliser un connecteur pour appeler l'API Storage et lire les données directement depuis MaxCompute. Cette approche simplifie la lecture des données et améliore les performances d'accès. L'intégration de Spark au stockage de données MaxCompute offre des capacités de traitement et d'analyse efficaces, flexibles et puissantes.
Périmètre
-
Lorsqu'un moteur tiers accède à MaxCompute :
Vous pouvez lire les données des tables standard, des tables partitionnées, des tables clusterisées, des Delta Tables et des vues matérialisées.
Vous ne pouvez pas lire les données des tables externes MaxCompute ni des vues logiques.
Le connecteur ne prend pas en charge la lecture du type de données JSON.
Procédure
Acheter un groupe de ressources exclusif pour Data Transmission Service (abonnement) .
-
Déployez un environnement de développement Spark.
Cliquez sur Spark pour télécharger un package Spark pour les versions
Spark 3.2.x - Spark 3.5.x, puis décompressez le package dans un dossier local.Pour configurer l'environnement de développement Spark sur un système d'exploitation Linux, consultez la rubrique Configurer un environnement de développement Linux.
Pour configurer l'environnement de développement Spark sur un système d'exploitation Windows, consultez la rubrique Configurer un environnement de développement Windows.
-
Téléchargez et compilez le connecteur Spark. Seules les versions Spark 3.2.x à 3,5.x sont prises en charge. Cette rubrique utilise Spark 3.3.1 à titre d'exemple.
Exécutez la commande
git clonepour télécharger le package du connecteur Spark. Assurez-vous que Git est installé dans votre environnement, sinon une erreur se produira lors de l'exécution de la commande.## Download the Spark connector. git clone https://github.com/aliyun/aliyun-maxcompute-data-collectors.git ## Switch to the spark-connector folder. cd aliyun-maxcompute-data-collectors/spark-connector ## Compile the connector. mvn clean package ## Location of the datasource JAR package. datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar ## Copy the datasource JAR package to the $SPARK_HOME/jars/ folder. cp datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar $SPARK_HOME/jars/ -
Configurez les informations d'accès au compte MaxCompute.
Dans le dossier
confde votre installation Spark, créez un fichierspark-defaults.conf:cd $SPARK_HOME/conf vim spark-defaults.confAjoutez les informations de compte suivantes au fichier
spark-defaults.conf:## Configure the account in 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 ## Configure the 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.OdpsExtensions -
Accédez à MaxCompute via le connecteur Spark.
-
Exécutez la commande suivante dans le dossier
binde votre installation Spark pour démarrer le client Spark SQL :cd $SPARK_HOME/bin spark-sql -
Interrogez les tables du projet MaxCompute :
SHOW tables in odps.doc_test;doc_testest un exemple de nom de projet MaxCompute. Remplacez-le par le nom de votre projet MaxCompute. -
Créez une table :
CREATE TABLE odps.doc_test.mc_test_table (name STRING, num BIGINT); -
Lisez les données de la table :
SELECT * FROM odps.doc_test.mc_test_table; -
Créez une table partitionnée :
CREATE TABLE odps.doc_test.mc_test_table_pt (name STRING, num BIGINT) PARTITIONED BY (pt1 STRING, pt2 STRING); -
Lisez les données de la table partitionnée :
SELECT * FROM odps.doc_test.mc_test_table_pt;Le résultat suivant s'affiche :
test1 1 2018 0601 test2 2 2018 0601 Time taken: 1.312 seconds, Fetched 2 row(s) -
Supprimez la table :
DROP TABLE IF EXISTS odps.doc_test.mc_test_table;
-