Este tópico descreve como acessar dados no Data Lake Formation (DLF) a partir do EMR Serverless Spark.
Limitações
Esse recurso está disponível apenas nas versões esr-3.5.0, esr-2.9.0, esr-4.6.0 e posteriores do EMR Serverless Spark.
Crie um catálogo DLF
Para mais informações, consulte Get started with DLF.
Conectar um catálogo DLF a um workspace
Você pode conectar um catálogo DLF a um workspace novo ou existente do EMR Serverless Spark.
Após a conexão de um catálogo DLF a um workspace do EMR Serverless Spark, o Livy Gateway e o Kyuubi Gateway passam a oferecer suporte nativo ao catálogo padrão.
Novo workspace
Para criar um workspace do EMR Serverless Spark, consulte Create a workspace.
Ao criar o workspace, ative DLF for Metadata Storage e selecione o catálogo DLF criado.
Workspace existente
Acesse a página Catalog do seu workspace do EMR Serverless Spark e adicione o catálogo DLF criado. Para mais informações, consulte Gerencie catalogs.
Acessar arquivos do DLF
Faça login no console do Data Lake Formation (DLF).
No banco de dados padrão do catálogo DLF conectado, crie uma tabela de objetos chamada
object_table.Clique em na nova tabela para abrir a página de detalhes e selecione a aba file list.
Clique em Upload File e envie o arquivo employee.csv.
Retorne ao console do EMR. No painel de navegação à esquerda, escolha para abrir o workspace do EMR Serverless Spark.
No painel de navegação à esquerda, escolha Development.
Na aba Development, clique em no ícone
. Na caixa de diálogo exibida, insira um nome, selecione Notebook em Type e clique em OK.-
Execute o código a seguir para acessar o arquivo de teste.
# 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| +----------+-----------+