我编写Python将Azure数据湖中的数据加载到数据帧中进行处理。我有两种文件类型(CSV和平面文件)。CSV加载没有问题,但是平面文件出错了。你知道吗
我知道这是文件格式的问题。它给出了一个类型错误:需要一个类似字节的对象,而不是“str”
我不知道如何转换文件使其正常工作。我尝试了编码和解码,但遇到了属性错误:“AzureDLFile”对象没有属性“decode”
当我在我的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]
关键是将数据帧转换为字符串,而不是使用str.encode编码()功能。你知道吗
试试下面这样的
希望有帮助。你知道吗
相关问题 更多 >
编程相关推荐