Cette rubrique explique comment accéder aux données de Data Lake Formation (DLF) depuis EMR Serverless Spark.
Limites
Cette fonctionnalité est disponible uniquement pour les versions esr-3.5.0, esr-2.9.0, esr-4.6.0 et ultérieures d'EMR Serverless Spark.
Créer un catalogue DLF
Pour plus d'informations, consultez la section Prise en main de DLF.
Connecter un catalogue DLF à un espace de travail
Vous pouvez connecter un catalogue DLF à un espace de travail EMR Serverless Spark nouveau ou existant.
Une fois le catalogue DLF connecté à l'espace de travail EMR Serverless Spark, Livy Gateway et Kyuubi Gateway prennent nativement en charge son catalogue par défaut.
Nouvel espace de travail
Pour créer un espace de travail EMR Serverless Spark, consultez la section Créer un espace de travail.
Lors de la création de l'espace de travail, activez l'option DLF for Metadata Storage et sélectionnez le catalogue DLF créé.
Espace de travail existant
Accédez à la page Catalog de votre espace de travail EMR Serverless Spark et ajoutez le catalogue DLF créé. Pour plus d'informations, consultez la section Gérer les catalogues.
Accéder aux fichiers DLF
Connectez-vous à la console Data Lake Formation (DLF).
Dans la base de données par défaut du catalogue DLF connecté, créez une object table nommée
object_table.Cliquez sur la nouvelle table pour ouvrir sa page de détails, puis sélectionnez l'onglet file list.
Cliquez sur Upload File et téléchargez le fichier employee.csv.
Revenez à la console EMR. Dans le volet de navigation de gauche, choisissez pour ouvrir votre espace de travail EMR Serverless Spark.
Dans le volet de navigation de gauche, choisissez Development.
Sous l'onglet Development, cliquez sur l'icône

. Dans la boîte de dialogue qui s'affiche, saisissez un nom, sélectionnez Notebook comme type, puis cliquez sur OK.-
Exécutez le code suivant pour accéder au fichier de test.
# Replace catalog_name with the name of your DLF catalog. df = spark.read.option("delimiter", ",").option("header", True).csv("pvfs://catalog_name/default/object_table/employee.csv") # Show the first few rows of the DataFrame. df.show(5) # Perform a simple aggregation to calculate the total salary for each department. sum_salary_per_department = df.groupBy("department").agg({"salary": "sum"}).show()+-------------+----------+------+ |employee_name|department|salary| +-------------+----------+------+ | James| Sales| 3000| | Michael| Sales| 4600| | Robert| Marketing| 4100| | Maria| Finance| 3000| | James| Sales| 3000| +-------------+----------+------+ only showing top 5 rows +----------+-----------+ |department|sum(salary)| +----------+-----------+ | Sales| 12600.0| | Finance| 6900.0| | Marketing| 10400.0| +----------+-----------+