我目前正在开发一个项目,我必须从 SharePoint 中的 Excel 文件获取数据,该文件有多个选项卡,我正在使用 Azure Synapse Analytics 调用 SharePoint API 来获取每个选项卡,并将其保存到 Azure Blob 中存储为“文件”,尽管我可以将其另存为文本或 CSV(尽管由于下面解释的问题,CSV 会变得混乱)。
我遇到的问题是在 Excel 列之一中,有包含回车符和换行符的自由文本字段,尽管直到转换为 CSV 后才明显。
我需要将此文件放入数据仓库中的 SQL 表中,但是每一行都由 ,这就是 Synapse 将其放入表中的方式。
在我的文件中,每个“真正的”换行符(我需要的行的末尾)前面都有一个逗号,所以我的计划是替换任何 , 类似于!**NEWLINE**!然后删除所有剩余的 通过替换为空字符串,然后替换回来!**NEWLINE**!和 , .
这在 Notepad++ 中执行时确实有效,但我需要每周自动处理多个文件。我正在尝试找出最好的方法来做到这一点,我正在考虑使用笔记本和 PySpark,尽管我在格式方面遇到问题,因为由于必须使用数据帧,它看起来并不是最合适的。
我想知道是否有人有任何建议可以帮助我,要么是摆脱隐藏在 excel 中的回车符(不是手动)的方法,要么是关于如何使用笔记本或任何其他组件的建议Azure Synapse 可以完成此任务。如果没有明确的答案,我很高兴能在我可以研究的想法方面指出正确的方向。
我尝试通过在 PySpark 中使用笔记本来实现此目的,但在遵循示例/教程时,它似乎正在使用数据帧,并指定要在哪一列中进行查找和替换。我无法执行此操作,因为该文件是由于换行符/回车符,格式很尴尬。
您正在寻找什么样的数据大小?您可以像普通的 python 机器一样使用 Spark 节点,并将其作为字符串加载到内存中,在字符串上调用替换方法(使用上面的逻辑),然后转换为数据帧以执行您需要的任何进一步转换,或者只是写回ADLS?这显然并不理想,因为它没有利用数据帧 Spark 的并行性,但如果您的数据大小允许,可以作为一种解决方法。