這是我在pyspark上的邏輯:
df2 = spark.sql(f" SELECT tbl_name, column_name, data_type, current_count FROM {database_name}.{tablename}")
query_df = spark.sql(f"SELECT tbl_name, COUNT(column_name) as `num_cols` FROM {database_name}.{tablename} GROUP BY tbl_name")
df_join = df2.join(query_df,['tbl_name'])
然后我想在Dataframe中添加另一個名為'column_case_lower的列,并使用islow()函數分析columns_names是否為小寫。
我使用這種邏輯進行分析:
df_join.withColumn("column_case_lower",
when((col("column_name").islower()) == 'true'.otherwise('false'))
--錯誤為:分析時出現意外EOF
期待著這樣的事情:
islower()
不能應用于列類型。請使用下面使用UDF
的代碼。