要解决"Athena创建的AWS Glue表被EMR Spark读取两次"的问题,可以使用以下代码示例中的两种方法。
方法1:使用Distinct操作符
from pyspark.sql import SparkSession
# 创建SparkSession
spark = SparkSession.builder.getOrCreate()
# 读取Athena创建的AWS Glue表
df = spark.read.format("awsdatacatalog")
.option("catalogName", "AwsDataCatalog")
.option("database", "your_database_name")
.option("tableName", "your_table_name")
.load()
# 使用Distinct操作符去重
df_distinct = df.distinct()
# 打印去重后的数据
df_distinct.show()
方法2:使用dropDuplicates方法
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
# 创建SparkSession
spark = SparkSession.builder.getOrCreate()
# 读取Athena创建的AWS Glue表
df = spark.read.format("awsdatacatalog")
.option("catalogName", "AwsDataCatalog")
.option("database", "your_database_name")
.option("tableName", "your_table_name")
.load()
# 使用dropDuplicates方法去重
df_distinct = df.dropDuplicates()
# 打印去重后的数据
df_distinct.show()