从ADLS读取snappy.parquet文件报错:DataframReader对象不可调用
问题解决:"DataFrameReader" object is not callable 错误
错误原因分析
你的代码存在两个关键问题:
- 语法错误:
format("delta"(input_file_path+'filename.snappy.parquet')括号嵌套混乱,缺少闭合括号,且错误地将文件路径作为参数直接传给format()方法,不符合Spark DataFrameReader的API调用规范。 - 格式指定错误:你要读取的是snappy压缩的parquet文件,却指定了
delta格式,与文件实际类型不匹配。
修正后的代码
方法1:直接使用parquet()方法(推荐)
input_file_path = "/mnt....../" df = spark.read.parquet(input_file_path + 'filename.snappy.parquet') df_count = df.count() display(df_count)
方法2:使用format()链式调用load()
input_file_path = "/mnt....../" df = spark.read.format("parquet").load(input_file_path + 'filename.snappy.parquet') df_count = df.count() display(df_count)
补充说明
- Spark会自动识别parquet文件的snappy压缩格式,无需额外指定压缩类型。
- 如果确实需要读取Delta Lake表,才需要使用
format("delta"),但此时路径应指向Delta表的目录而非单个parquet文件。
内容的提问来源于stack exchange,提问作者Gyari
相关产品推荐
相关产品推荐

