AWS Glue:分析异常:找不到表或视图

问题描述 投票:0回答:1

我尝试在 Glue 4.0 中从数据帧创建视图,但收到错误 - AnalysisException:未找到表或视图。 glue数据库中表的数据格式是hudi。

代码-

import sys
from awsglue.transforms import *
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
from pyspark.sql.functions import *

sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)

# Define the Glue Data Catalog database and table names
database_name = "hudi_db"
table4_name = 'd_person'

table4 = glueContext.create_data_frame.from_catalog(
    database=database_name,
    table_name=table4_name,
)

rows = table4.count()
distinct_rows = table4.distinct().count()
print(f"Number of rows in data frame: {rows} and distinct rows are: {distinct_rows}")


table4.createOrReplaceTempView(table4_name + '_glue_view')


custom_sql_query = """
      SELECT count(*)
    FROM d_person_glue_view
"""

# Execute the custom SQL query
result_df = spark.sql(custom_sql_query)

是否需要任何额外的配置?可能导致此错误的原因是什么?

谢谢你。

我尝试过以下方法 -

  1. 提供您自己的 SparkSession 供其在 GlueContext 构造函数中使用。
  2. 在 Gluecontext 的 Spark_session 对象上运行 sql
  3. 直接使用sparksql,而不是创建dataframe。这可行,但我想先加载到数据帧中,然后创建一个视图。
aws-glue apache-hudi
1个回答
0
投票

以下是在Dataframe中读取Hudi表的方法,它对我来说效果很好:

spark.read.format("hudi").load(S3_basePath).createOrReplaceTempView("test")

res = spark.sql("select * from test")

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.