我有一个包含 20 列和大约 523 万行的增量表。有些列是复杂的数据类型。我想从表中导出数据并使用 python 写入 .txt 文件,标题行使用制表符 ( ) 字段分隔符,每个文件中有 50,000 行数据。我对 Databricks 和 python 很陌生,需要一个解决方案。请写出完整的代码,而不仅仅是逻辑。
提前致谢。
尝试搜索没有结果
每个文件的 50,000 条记录计数必须准确吗?如果不是 5.32e6/50,000 大约是 106,所以如果我们将数据重新分区到 106 个分区,它将为我们提供包含大约 50,000 条记录的文件:
from pyspark.sql.types import *
df = spark.read.format('delta').load('<path to table>')
record_count = df.count()
(
df
.select(*[f.col(element).cast(StringType()).alias(element) for element in df.columns]) #To take care of complex data types
.repartition(int(record_count/50000))
.write.option('delimiter', '\t').option('header', True).csv('<write destination>')
)
#since you're using Databricks and if you absolutely care about the file extension being .txt
files = dbutils.fs.ls('<write destination>')
for element in flies:
dbutils.fs.mv(element.path, element.path.replace('.csv', '.txt'))