[更新 - 2020 年 5 月 15 日 - このコードとフロー全体が寄木細工のファイル形式で動作するようになりました。ただし、CSVを使用したアプローチにはまだ興味があります]
以下のコマンドを使用して、ローカル マシンから ADLS Gen 2 ストレージに csv ファイルをアップロードしようとしています。これは正常に機能しますが、ADLS の結果の csv ファイルは、各行を区切る改行文字のない連続したテキストです。Polybase を使用しているため、この CSV ファイルを Azure Synapse に読み込むことはできません。
入力 CSV -
"col1"、"col2"、"col3"
"NJ","1","1/3/2020"
"NY","1","1/4/2020" ...
私が得る出力CSVはこのようなものです -
"col1","col2","col3""NJ","1","1/3/2020""NY","1","1/4/2020"...
最終的なcsvの各行の後に改行文字があることを確認するにはどうすればよいですか? 各 CSV にはわずか 100,000 レコードしかありません。
import os, uuid, sys
from azure.storage.filedatalake import DataLakeServiceClient
from azure.core._match_conditions import MatchConditions
from azure.storage.filedatalake._models import ContentSettings
try:
global service_client
service_client = DataLakeServiceClient(account_url="{}://{}.dfs.core.windows.net".format(
"https", "<storage-account>"), credential="<secret>")
file_system_client = service_client.get_file_system_client(file_system="import")
dest_directory_client = file_system_client.get_directory_client("Destination")
f = open("file-path/cashreceipts.csv",'r')
dest_file_client = dest_directory_client.create_file("cashreceipts.csv")
file_contents = f.read()
dest_file_client.upload_data(file_contents, overwrite=True)
f.close()
except Exception as e:
print(e)
私もこのアプローチを試しました-
dest_file_client.append_data(data=file_contents, offset=0, length=len(file_contents))
dest_file_client.flush_data(len(file_contents))
ここでは、テキスト ファイルのアプローチについて説明している Microsoft のドキュメントを参照しています。