我使用过著名的 PDF 文件 Python 包,例如 PDFminer、PyMuPDF、PyPDF2 等。但它们都不能从用从右到左的语言(波斯语、阿拉伯语)编写的 PDF 文件中正确提取文本。
\n例如:
\nimport fitz\ndoc = fitz.open("*/path/to/file.pdf")\ntxt = doc.getPageText(0)\nprint(txt)\nRun Code Online (Sandbox Code Playgroud)\n它返回类似这样的内容:
\n\n\n...
\n\xd8\xa7\xef\xaf\xbe\xef\xbb\xa8\xef\xba\x98\xef\xba\xae\xef\xbb\xa7\xef\xba\x96\xd9\x88\xef\xae\x90 \xef\xba\x8e\xef\xbb\xa3\xef\xad\x99\xef\xaf\xbf\xef\xbb\xae\xef\xba\x97\xef\xba\xae \xef\xba\x91\xef \xbb\xaa \xef\xbb\xa3\xef\xba\xb4\xef\xbb\xa0\xef\xbb\x82
\n\xef\xbb\xa3\xef\xba\xb4\xef\xbb\xa0\xef\xbb\x82 \xef\xbb\xab\xef\xba\x8e\xdb\x8c\xd8\xb2\xef\xba\x91 \xef\xba\x8e\xd9\x86
\n...
\n
有时单词会被颠倒(第一个字符在最后)并且单词在句子中被交换,有时单词会被正确书写。但它不知道如何处理零宽度非连接符(\xd9\x86\xdb\x8c\xd9\x85\xe2\x80\x8c\xd9\x81\xd8\xa7\xd8\xb5\xd9\x84 \xd9\x87),在波斯语中常用。
\n我尝试了很多,但一无所获。提前感谢您的帮助。
\n我想在 AWS Athena 中使用 Presto SQL 语法连接两个具有许多列的大型表。我的代码非常简单:
select
*
from TableA as A
left join TableB as B
on A.key_id = B.key_id
;
Run Code Online (Sandbox Code Playgroud)
连接后,主键列 ( key_id) 重复两次。两个表都有超过 100 列,并且连接需要很长时间。如何修复该问题,使该key_id列在最终结果中不会重复两次?
PS AWS Athena 不支持except命令,与 Google BigQuery 不同。