У меня есть несколько файлов в озере данных Azure, и мне нужно подсчитать, сколько строк им нужно, чтобы убедиться, что они заполнены.Каков наилучший способ сделать это?
Я использую Python:
from azure.datalake.store import core, lib
adl_creds = lib.auth(tenant_id='fake_value', client_secret='fake_another value', client_id='fake key', resource='https://my_web.azure.net/')
adl = core.AzureDLFileSystem(adl_creds, store_name='fake account')
file_path_in_azure = "my/path/to/file.txt"
if adl.exists(file_path_in_azure) is True:
# 5 megs 5242880 500megs 524288000 100megs 104857600 1meg 1048576
counter = 0
with adl.open(file_path_in_azure, mode="rb", blocksize=5242880) as f:
# i try to use list comprehension but the memory increase since make a list of 1 [1,1,1,1,1,1,1] and then sums all
# counter1 = sum(1 for line in f)
for line in f:
counter = counter + 1
print(counter)
Это работает, но для файлов размером 1 или 2 гигабайта требуются часы.Разве это не должно быть быстрее?Может быть, есть лучший способ?