Я написал Python для загрузки данных из озера данных Azure во фрейм данных для обработки. У меня есть два типа файлов (CSV и плоские файлы). CSV загружается без проблем, но ошибки в плоском файле отсутствуют.
Я знаю, что это проблема с форматом файла. Он выдает ошибку типа: требуется объект, похожий на байты, а не 'str'
Я не могу понять, как конвертировать файл, чтобы он работал правильно. Я пытался кодировать и декодировать, но я столкнулся с ошибкой атрибута: объект «AzureDLFile» не имеет атрибута «декодировать»
Когда я тестировал скрипт локально на моем диске C: \, он работал нормально, поэтому я подозреваю, что файл, выходящий из Azure, отличается. У кого-нибудь есть идеи, как конвертировать файл, чтобы я мог его ввести?
import numpy as np
import pandas as pd
import datetime
import os
from azure.datalake.store import core, lib, multithread
USERNAME = "xxxx"
PASSWORD = "xxxx"
TENANT_ID = "xxxx"
STORE_NAME = "xxxx"
token = lib.auth(TENANT_ID, USERNAME, PASSWORD)
adl = core.AzureDLFileSystem(token, store_name=STORE_NAME)
#EXAMPLE 1 - OPENING A CSV FILE INTO A DATA FRAME - WORKS FINE
f = adl.open('/path/filename1.txt')
df = pd.read_csv(f,dtype=str, sep='|')
df[:3]
#EXAMPLE 2 - OPENING A FLAT FIXED WIDTH FILE INTO A DATA FRAME - DOES NOT WORK
f1 = adl.open('/path/filename2') #THIS FILE HAS NO EXTENSION
df2 = pd.read_fwf(f1)
df2[:3]