Сделать быстрый паркетный файл куста на кусте s3 из операционной системы Windows не удается

Следующий код работает для меня в Unix, но не работает в Windows.

from fastparquet import write
import pandas as pd
import s3fs

s3 = s3fs.S3FileSystem()
bucket = "your-bucket-name"
filepath = "s3://{b}/testspace/example.parquet".format(b=bucket)
df = pd.DataFrame({'A': [1, 1, 2, 3], 'B': [4, 5, 6, 7]})

write(filepath,
    data=df,
    file_scheme='hive',
    object_encoding='bytes',
    partition_on=['A'],
    open_with=s3.open)

Это дает эту ошибку на Windows:

Traceback (most recent call last):
  File "make_error_parquet.py", line 22, in <module>
    open_with=s3.open)
  File "C:\Anaconda\lib\site-packages\fastparquet\writer.py", line 817, in write
    mkdirs(filename)
  File "C:\Anaconda\lib\site-packages\fastparquet\util.py", line 37, in default_       mkdirs
    os.makedirs(f)
  File "C:\Anaconda\lib\os.py", line 150, in makedirs
    makedirs(head, mode)
  File "C:\Anaconda\lib\os.py", line 150, in makedirs
    makedirs(head, mode)
  File "C:\Anaconda\lib\os.py", line 150, in makedirs
    makedirs(head, mode)
  File "C:\Anaconda\lib\os.py", line 157, in makedirs
    mkdir(name, mode)
WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: 's3:'

Кажется, это связано с необходимостью создавать каталоги локально. Я также попытался добавить параметр mkdirs=os.makedirs в write() но я думаю, что этот параметр предназначен для создания каталога в файловой системе, куда будет записан файл, и в s3 я понимаю, что на самом деле нет каталогов. Только ключ, значение хранит.

Сбой на:


OS: Microsoft Windows Server 2008
Python: 2.7
fastparquet: 0.1.3
pandas: 0.18.0
s3fs: 0.1.2

Работает с Centos, той же версией Python и пакетами

0 ответов

Другие вопросы по тегам