Spark向外部表插入数据后未生成新文件,数据存储位置何在?
新插入的数据存储位置说明
当你在Spark中对CSV格式的外部表执行INSERT INTO操作时,由于CSV文件本身不支持原地追加写入(无法直接在原emp_data.csv中添加新记录),Spark会在表指定的LOCATION目录(即dbfs:/raw/data/externalTables/emp_data_folder/)下生成新的以part-开头的CSV文件来存储这条新插入的记录。
你看不到这些文件的原因大概率是查看目录的方式问题:
- 如果你是通过Databricks UI查看目录,可能需要确保显示所有文件(包括自动生成的part文件);
- 可以通过执行Databricks命令行工具来列出目录下的所有文件:
执行后你会看到类似dbutils.fs.ls("dbfs:/raw/data/externalTables/emp_data_folder/")part-00000-xxxxxx-c000.csv这样的文件,这就是存储Mark这条记录的文件。
另外,目录下的_SUCCESS文件只是Spark写入作业完成的标记文件,不存储任何业务数据。
内容的提问来源于stack exchange,提问作者DumbCoder
相关产品推荐
相关产品推荐

