我有一个使用雅典娜源代码的etl进程。如果源中还没有数据,我不知道如何创建数据框。我使用的是GlueContext:
trans_ddf = glueContext.create_dynamic_frame.from_catalog(
database=my_db, table_name=my_table, transformation_ctx="trans_ddf")如果源数据库中没有数据,则此操作将失败,因为它无法推断模式。
我还尝试在spark会话上使用sql函数:
has_rows_df = spark.sql("select cast(count(*) as boolean) as hasRows from my_table limit 1")
has_rows = has_rows_df.collect()[0].hasRows这也会失败,因为它不能推断模式。
如何创建数据框以确定源是否包含任何数据?
发布于 2019-11-07 23:02:44
has_rows_df.head(1).isEmpty应该能很好地完成这项工作。请参阅How to check if spark dataframe is empty?
https://stackoverflow.com/questions/57281856
复制相似问题