如何从Databricks中的Delta表导出数据并写入txt文件

问题描述 投票:0回答:1

我有一个包含 20 列和大约 523 万行的增量表。有些列是复杂的数据类型。我想从表中导出数据并使用 python 写入 .txt 文件,标题行使用制表符 ( ) 字段分隔符,每个文件中有 50,000 行数据。我对 Databricks 和 python 很陌生,需要一个解决方案。请写出完整的代码,而不仅仅是逻辑。

提前致谢。

尝试搜索没有结果

python export databricks delta
1个回答
0
投票

每个文件的 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'))
© www.soinside.com 2019 - 2024. All rights reserved.