У меня есть рабочий проект Scrapy, который загружает файлы TSV и сохраняет их в s3.
Я использую собственный конвейер для сохранения исходных имен файлов с датами.
Мне интересно, можно ли конвертировать tsv файлы в паркет перед загрузкой их в s3. Если да, то как мне это сделать в Scrapy?
Я должен отметить, что я могу конвертировать файлы локально (последний блок кода), но хотел бы сделать это встроенным, прежде чем они будут загружены в s3.
Это то, над чем я сейчас работаю....
##items
class DownfilesItem(scrapy.Item):
file_urls = scrapy.Field()
files = scrapy.Field()
original_file_name = scrapy.Field()
date = scrapy.Field()
##pipeline to save original file names with dates
class OriginalNameFilesPipeline(FilesPipeline):
def file_path(self, request, response=None, info=None):
test = request
file_name_xml = request.url.split("=")[-1]
file_name: str = file_name_xml.removesuffix('.tsv') + '_' + datetime.today().strftime("%Y%m%d") + '.' + file_name_xml.split(".")[-1]
return file_name
##in my scraper
def parse_all_items(self, response):
all_urls = [bunch or urls]
for url in all_urls:
item = DownfilesItem()
item['file_urls'] =
item['original_file_name'] = url.split ... load-to-s3
Scrapy TSV скачать файл. как конвертировать файл в паркет перед загрузкой на s3 ⇐ Python
Программы на Python
1735043497
Anonymous
У меня есть рабочий проект Scrapy, который загружает файлы TSV и сохраняет их в s3.
Я использую собственный конвейер для сохранения исходных имен файлов с датами.
Мне интересно, можно ли конвертировать tsv файлы в паркет перед загрузкой их в s3. Если да, то как мне это сделать в Scrapy?
Я должен отметить, что я могу конвертировать файлы локально (последний блок кода), но хотел бы сделать это встроенным, прежде чем они будут загружены в s3.
Это то, над чем я сейчас работаю....
##items
class DownfilesItem(scrapy.Item):
file_urls = scrapy.Field()
files = scrapy.Field()
original_file_name = scrapy.Field()
date = scrapy.Field()
##pipeline to save original file names with dates
class OriginalNameFilesPipeline(FilesPipeline):
def file_path(self, request, response=None, info=None):
test = request
file_name_xml = request.url.split("=")[-1]
file_name: str = file_name_xml.removesuffix('.tsv') + '_' + datetime.today().strftime("%Y%m%d") + '.' + file_name_xml.split(".")[-1]
return file_name
##in my scraper
def parse_all_items(self, response):
all_urls = [bunch or urls]
for url in all_urls:
item = DownfilesItem()
item['file_urls'] = [url]
item['original_file_name'] = url.split("=")[-1]
yield item
##converting tsv to parquet locally
parse_options = csv.ParseOptions(delimiter="\t")
for name in os.listdir(src_dir):
localpath = os.path.join(src_dir, name)
print(localpath)
if ".tsv" in localpath:
table = csv.read_csv(localpath, parse_options=parse_options)
pq.write_table(table, localpath.replace('tsv', 'parquet'))
Подробнее здесь: [url]https://stackoverflow.com/questions/78614542/scrapy-tsv-file-download-how-to-convert-file-to-parquet-before-upload-to-s3[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия