Правильная циклевка старого паркета своими руками
Паркет Вас не радует, лак потускнел, местами облез, между плашками образовались щели, деревянный пол в пятнах, поверхность стала неровной — это значит: настало время провести циклевку старого паркета.
Что такое циклевка старого паркета своими руками и как ее выполнить!
Как сделать циклевку паркета самостоятельно, и что для этого нужно? Существует несколько видов шлифовальной техники и каждая из них, зачем-то нужна. Чтобы выполнить все своими руками и остаться довольным, читайте эту статью!
Все фотографии на сайте — это наши работы!
Нажав сюда, Вы можете увидеть адреса и фотографии последних наших работ
Циклевать старый пол самостоятельно надо уметь!
Мы написали эту статью, чтобы Вы имели представление о том, что это, и как это качественно сделать!
Смотрите фотографии циклевки паркета до и после!
Сначала деревянный пол обрабатывается барабанной машиной, типа СО-2, или ленточной, типа Hummel.
Циклевка старого паркета, или как правильно отциклевать паркет самому?
Первым делом Вам надо удалить старый лак, выровнять пол и снять верхний слой древесины. Существует несколько номеров абразивного материала — от P16 до P220 и мельче. Нельзя нарушать последовательность смены номеров, ибо основные операции Вы проводите первым номером, остальные нужны для удаления воздействия абразива на покрытие.
В свете вышесказанного, перед вами стоит задача выбора первого номера абразива так, чтобы выполнить поставленную задачу и при этом нанести наименьшие воздействия на пол. Как это сделать? Тут решающее значение имеет опыт и мастерство! Циклюя самостоятельно в первый раз, начинайте с самого «ненужного» помещения. Перейдя на основное, успеете преобрести хоть какой-нибудь, да опыт!
Теперь о том, как грамотно провести мероприятия по циклевке! Итак, определившись с первым номером абразива можно приступать к циклевке. Если лак «тяжелый», его много, пол неровный лучше всего начинать движение под 45 градусов от направления клепок или досок, затем опять под 45 градусов, но в другую сторону и потом по направлению света, т.
Итак, циклевка машиной закончена, но что делать с примыканиями! То есть с местами вдоль стен, куда вы не смогли подъехать циклевочной машиной. В этом случае используются угловые машины типа «Flip» или на крайний случай УШМ с насадкой. В принципе ничего сложного, главное правильно менять абразив, работать плавно, не торопливо, не пытаться давить на машинку, не нагибать ее углом. Как говориться, торопливость нужна при ловле блох, обрабатывая примыкания можно так изрезать паркет, что не каждый мастер сможет исправить. Обработку примыканий можно проводить в середине процесса, можно в конце.
Вот циклевка паркета видео:
Теперь рассмотрим что это за машина ТРИО и зачем она нужна! Это плоскошлифовальная машина, которая обрабатывает поверхность пола плоскостью. Она имеет вращающуюся плоскость, на которую крепятся три диска с абразивом, крутящихся в противоположную сторону. На ней также используются абразивы разных номеров, последовательность смены которых нельзя нарушать. Эта машина обрабатывает за раз большую площадь с меньшим давлением, что позволяет лучше вышлифовать пол. После обработки паркет или доска становятся более ровными и гладкими, структура древесины лучше проявляется, хотя если вы надеетесь выровнять покрытие или снять старый слой лака, используя лишь ТРИО, Вы будете неприятно удивленны, как сложно это сделать.
Итак, резюме: Провести циклевку самостоятельно можно, но вот описать все сложности и нюансы, возникающие в процессе работы очень непросто. Даже моменты, кажущиеся нам простыми, могут поставить в затруднение неопытного человека.
Вывод: сделать можно, но для получения прекрасного результата, при этом избавив себя от головной боли, обращаться надо к профессионалам!
Как и чем циклевать и шлифовать паркет своими руками
share. in Facebook
share.in Telegram
share.in Viber
share.in Twitter
Среди всех материалов напольного покрытия, самым эстетичным и уютным для большинства владельцев квартир по сей день остается деревянный паркет. Действительно, древесина идеально подходит для создания атмосферы уюта в любой комнате, но при ее использовании в декоре Вашей жилой площади возникает весьма важный вопрос – как сохранить красоту материала и увеличить срок «жизни» пола?
Содержание:
- Циклевка и шлифовка паркета, в чем разница?
- Как циклевать паркет
- Как шлифовать пол
Конечно же периодической циклевки пола вполне достаточно для поддержания первоначального вида напольного покрытия. Но использование автоматического циклевателя или, в худшем случае, ручной цикли сопряжено с множеством трудностей, так как процесс этот весьма долгий и энергозатратный. Много мусора и излишняя громкость делают этот способ ухода за паркетом неудобным, а с появлением на рынке новых машин, еще и устаревшим.
В таком случае намного выгоднее просто разобраться как шлифовать пол своими руками, что сэкономит много времени и сил. Но все же давайте детально разберем, нужно ли тратить время на циклевание.
Циклевка и шлифовка паркета, в чем разница?
Итак, что же такое собственноручная циклевка паркета? Это снятие устаревшего и поврежденного слоя с напольного покрытия при помощи как ручного, так и электрического инструмента. Заточенная пластина из металла в таких приборах снимает деревянную стружку с пола, но такая работа трудная и долгая. Также при отсутствии должного умения циклёвка паркета получится более низкокачественной, потому что этот процесс требует определенных
Грубая обработка с помощью крупнозерновой наждачной бумаги спокойно заменяет циклёвку. Процессы схожи между собой, но шлифование менее энергозатратное и шумное занятие. Также крупнозерновая отделка используется для доведения напольного покрытия до более гладкого состояния.
Но все же давайте разберемся в этих вопросах более детально.
Как циклевать паркет
Выше мы разобрались что же это за процесс, теперь рассмотрим вопрос: когда же паркету требуется грубая циклевка?
Как только шероховатости и царапины старого напольного покрытия терпеть уже нет никаких сил, пол требует срочного обновления. В таком случае нужно выбрать способ – ручной или машинный.
Если решить пользоваться обычной ручной циклей, то стоит сразу готовиться к длительной работе, возможно даже придется потратить несколько дней.
- Первое что нужно сделать — вынести всю мебель из комнаты, а плинтуса попросту демонтировать.
- Далее следует подготовка пола, которая состоит из уборки мусора, а потом увлажнения паркета.
- Теперь пол готов и поделив периметр на несколько полос можно начинать обработку. Поступательными равномерными движениями нужно снимать старый слой древесины, сначала вдоль волокон, а после в противоположную сторону.
Но если у вас попросту нет пары свободных дней на обработку пола? Тогда давайте разберем как же правильно циклевать паркет своими руками с помощью специальной машины?
Начнем с того, что такая циклёвка отличается от ручной, ведь гораздо выгоднее выполнить её с помощью барабанной или ленточной шлифовальной машины, оснащенной крупнозернистой наждачной бумагой ( от 24 до 40 Р). В таком случае
Единственным важным вопросом остается лишь проверка электросети в квартире. Если напряжение не достигает 220 Вт, то нужно подключать машину напрямую к электрощиту.
А вот уже способ работы мало отличается от ручного:
- Также нужно подготовить комнату, освободив ее от вещей и мебели, а также демонтировав плинтуса.
- После увлажнения напольного покрытия, равномерно снимайте старый слой паркета, во время работы с нужной силой нажимая на машину.
- Углы и труднодоступные места циклевать стоит с помощью угловой машины, не стоит лезть ленточной машинкой в место, для которого она не предназначена.
- В случае, если Вы пропустили маленькую шероховатость или трещину, лучше всего будет обработать этот мини-участок вручную с помощью той же крупнозернистой наждачной бумаги.
Вот и все, пол отциклёван и полностью готов к шлифовке.
Как шлифовать пол
Итак, старый слой снят и теперь можно продолжать процесс обновления паркета.
Так как комната уже освобождена от лишних предметов, а пол при циклевке был увлажнен и очищен от мусора, то можно себя поздравить, подготовка к шлифованию завершена.
Этот процесс, в особенности после циклёвки должен проходить в несколько этапов и совершаться нужным инструментом. Чем же люди предпочитают обновлять паркет? Этот процесс может совершаться с помощью:
Каждый вид прибора подойдет для решения определенных задач и стоит детально разобрать, какой агрегат для чего нужен:
Ленточная шлифовальная машина идеально подойдет для обработки пола по всей площади. Ширина ленты и принцип работы позволяют быстро и легко справиться даже с довольно большой площадью обновляемого паркета.
Эксцентриковая машина в силу своей конструкции и функционального предназначения нужна в случае присутствия угловых или закругленных поверхностей.
Вибрационная шлифмашина полезна на заключительном этапе шлифовки, потому что обладает формой утюга, что позволяет спокойно справиться с труднодоступными местами.
Зачастую, достаточно будет наличия лишь машины ленточного типа, но в случае особой планировки комнаты неплохо было бы также иметь под рукой вибрационный агрегат.
Итак, нужный вид шлифмашины подобран, а подготовка комнаты и пола завершена. На всякий случай стоит еще раз внимательно осмотреть паркетное покрытие и вспомнить основные нюансы работы с ленточной шлифовальной машиной, так как особых премудростей в использовании вибрационного типа не требуется:
- Шлифовка осуществляется в диагональном направлении по отношению к укладке покрытия.
Перед самим процессом весьма важно правильно подобрать давление наждачной бумаги на поверхность, с которой Вы работаете. От этого зависит качество выполненной работы, ведь недостаточное давление приводит к неровностям и остаткам поврежденной древесины.
- Шлифовка должна происходить таким образом, чтобы в процессе каждая следующая пройденная дорожка перекрывала предыдущую на пару сантиметров.
- Скорость работы с машиной должна быть средней. Если пустить ее слишком быстро или медленно, на паркете останутся выпуклости и углубления.
- В случае внезапного замедления работы шлифмашины, стоит убавить давление инструмента на поверхность.
Теперь можно приступать к первому этапу поверхностной шлифовки:
- Подберите абразив с зернистостью Р60 или Р80;
- С помощью поступательных равномерных движений обработайте основную часть напольного покрытия;
- Далее следует отделка углов и труднодоступных мест;
- Снова пройдитесь и осмотрите пол после работы.
Перед последним этапом нужно зашпаклевать любую щель или зазор с помощью мастики, или смеси с древесной пылью, которая осталась после циклевки и шлифования.
И вот работа уже на финишной прямой.
Способ чистовой отделки не изменен, единственное что отличается – зернистость абразива, которая теперь должна быть от Р100 до Р120.
Выполнив все описанные этапы, остается лишь убрать опилки и пыль, нанести антисептическое средство и покрыть паркет лаком, первый слой которого – грунтовочный. После высыхания, пол снова шлифуется и вот уже тогда наносятся остальные слои.
Вот и все, работа окончена, а напольное покрытие выглядит прекрасно, как новое. Остается лишь один важный вопрос, когда снова придется циклевать паркет? Достаточно повторять вышеописанные действия раз в 6 или даже 8 лет.
Надеемся, что эта статья поможет всем людям, которые решили обновить напольное покрытие своими руками. А в случае отсутствия нужного инструмента, ждем вас на официальном сайте Dnipro-M. Множество электроинструментов и расходных материалов, их описания, характеристики и самое главное – отзывы довольных покупателей, все это поможет как любителю, так и профессионалу в выполнении работ любой сложности. Циклевать и шлифовать своими руками с подходящим инструментом — легко и просто.
Dnipro-M желает вам удачной и продуктивной работы, а также всегда готов помочь инструментом европейского качества по украинской цене.
Как циклевать паркет своими руками (самому вручную
Со временем лаковое покрытие паркетной доски стирается. На плашках могут появиться царапины и щербины. Это значит, что пришла пора паркет обновить, восстановив не только его внешний вид, но и защитное покрытие. Как правильно циклевать паркет своими руками – читайте в нашей статье. А сам паркет можно посмотреть тут.
Как правильно циклевать паркет? Это достаточно трудоемкая процедура, требующая большой аккуратности. Если вы готовы взять в аренду специальный инструмент и предварительно изучить, как циклевать паркет самому, то все получится.
- Полностью освобождаем комнату от мебели, демонтируем плинтус. Паркет перед шлифовкой не моем.
- Удаляем старое покрытие и неровности (грубая циклевка) с помощью паркетошлифовальной машины барабанного или ленточного типа и крупных абразивов № 24-40. Периметр, углы и труднодоступные места обрабатываем углошлифовальной машиной.
- После грубой шлифовки на поверхности дерева могут остаться волнообразные следы и даже царапины. Они удаляются на следующем этапе шлифовки абразивом со средней зернистостью (№ 60-80). Заодно окончательно удалятся остатки старого покрытия.
- Для следующего этапа шлифовки нам понадобится абразив № 100, 120 или 150. Прежде чем браться за этот этап, освобождаем пылесборник шлифмашины. Собранная при помощи тонкого абразива пыль понадобится нам для изготовления шпатлевки.
- Шпатлевание щелей, трещин, выпавших сучков, сколов.
В качестве заполнителя можно использовать пыль, собранную после тонкой шлифовки и специальную связующую смолу. Смешав два этих ингредиента (в пропорциях, указанных в инструкции к смоле), вы получите шпатлевку, идеально соответствующую цвету вашего паркета.
- После полного высыхания шпатлевки производим финишную шлифовку (полировку) паркета, которая сделает поверхность пола абсолютно гладкой и удалит остатки шпатлевки.
- Тщательно обеспыливаем помещение и шпателем, S-образными движениями наносим слой грунтовочного лака. Грунтовка снижает гигроскопичность древесины и не дает ей изменить цвет от прямого контакта с лаком.
Специальные грунтовки для паркета бывают нескольких видов. Выбирать их нужно с учетом вида древесины. Однокомпонентная нитрогрунтовка подойдет для гигроскопичной древесины (дуб, орех, ироко). Полиуретановые грунтовки идеальны для дерева с высоким содержанием смол и масел (экзотические породы – тик, палисандр). Для древесины светлых сортов можно подобрать осветляющие виниловые грунтовки или специальные грунтовки с защитой от ультрафиолета.
- После грунтовки может понадобиться межслойная шлифовка. Она делается для удаления поднявшегося во время грунтовки ворса. Используем тонкий абразив, которым пользовались для финишной шлифовки паркета.
- Обеспыливаем помещение после межслойной шлифовки.
- Лакируем поверхность в 3-5 слоев. Для нанесения лака используют валик, широкую кисть или краскопульт. Очень важно следовать инструкции по применению купленного вами лака и соблюдать время для отвердевания каждого слоя.
Как циклевать паркет вручную, без шлифовальной машины?
Для этого можно использовать ручную циклю. Она подойдет также для восстановления небольших участков паркета. Работать начинаем от центра комнаты к стенам. Каждый участок необходимо пройти в двух направлениях. После первичной шлифовки паркета вручную используем шкурки разной зернистости – от грубой к тонкой.
Наш совет: прежде чем решить, как циклевать паркет, надо проанализировать его состояние. Если это паркет 50-летней выдержки, рассохшийся и скрипящий, то вполне вероятно, что его проще будет полностью заменить.
Шлифовка паркета своими руками, советы циклевщиков
Качественная шлифовка паркета своими руками
Деревянный паркет смотрится гармонично в любом типе интерьера. Он экологичный, служит долго и радует глаз. Однако, вне зависимости от качества покрытия, со временем паркетная доска под воздействием внешних факторов теряет свой блеск. Чтобы избежать дорогостоящей процедуры замены, принято прибегать к такой процедуре, как циклевка паркета. Данный вид работ представляет собой снятие верхнего слоя с заменой в случае необходимости поврежденных элементов, полировку и покрытие свежим слоем паркетного лака. Наша компания осуществляет высококачественную циклевку паркета в Москве и области по наилучшим ценам.
Когда речь заходит о таком виде ремонтных работ, как шлифовка паркета своими руками, сложно представить себе весь объем и верную последовательность необходимых работ. Это касается как шлифовки паркетной доски вручную, так и шлифования с использованием специальных инструментов. Для того, чтобы иметь представление об обеих процедурах, опишем подробнее весь процесс циклевки паркета.
Условия для проведения полировки паркета
Перед тем, как составлять списки инструментов и сырья, которые понадобятся в процессе шлифовки паркета, стоит определить, есть ли смысл в проведении процедуры. Существует ряд ситуаций, в которых
Барабанная машина, которая необходима для шлифовки паркета своими рукамипаркет не спасет даже высококачественная шлифовка, выполненная профессионалами своего дела. К таким ситуациям относятся:
- Усыхание паркетной доски до образования щелей между элементами, превышающих 0,5 см.
- Размокание и вздутие паркета в результате затопления помещения или повышенной сырости бетонной стяжки под покрытием.
- На участке с наибольшей проходимостью паркет стерся.
- На некоторых отрезках имеются глубокие трещины или сколы доски.
- В области пола и стен помещения развивается грибок и плесень.
- В древесине паркетной доски завелись насекомые вредители.
Таким образом, можно сделать вывод, что если паркет изначально был уложен непрофессионалами, незнакомыми с нормами строительного дела, покрытие прослужит недолго, и шлифовкой его не спасешь. В тех же случаях, когда поверхность паркета утратила свой блеск, неравномерно потемнела или обзавелась парой десятков царапин бытового происхождения, беспокоиться не о чем. Качественно выполненная шлифовка вернет блеск и свежесть даже старому паркету.
Перечень необходимых инструментов и материалов
Как уже упоминалось выше, шлифовка паркета своими руками может проводиться как в классическом понимании этого слова, то есть вручную, так и с использованием специальной строительной техники. Преимущества и недостатки обоих способов очевидны. При проведении шлифовки паркета ручными средствами будет затрачен огромный объем времени и труда, однако, финансовые затраты покроются минимальным бюджетом. При использовании строительных агрегатов, предназначенных для шлифовки паркета, времени и сил на всю работу уйдет на порядок меньше, но значительно, по сравнению с первым вариантом, возрастут денежные расходы.
Помимо лакокрасочных материалов, необходимых для финальных стадий процесса, для проведения шлифования паркета вручную понадобится только наждачная бумага или цикля. Цикля представляет собой строительный инструмент для ручной циклевки паркета в виде металлической пластины с загнутым и заточенным краем для комфортного снятия верхних слоев древесины.
При выборе более быстрого способа шлифовки паркета своими руками, в перечень агрегатов и инструментов будут входить несколько типов строительных машин. А именно:
- Шлифовальная машина (барабанный тип) для глубокой циклевки паркета.
- Плоскошлифовальная машина (на 1 или 3 диска, в зависимости от потребностей и возраста паркета).
- Шлифовальная машина типа «сапожок». Для трудодоступных мест
- Пылесос.
- Строительные ножницы и ключи.
Перечисленные строительные агрегаты можно взять в аренду у строительной компании.
Перед тем, как шлифовать пол, стоит уделить внимание расходным материалам на проведение шлифовки пола. Вне зависимости от выбранного способа проведения, для полного восстановления внешнего вида паркета необходимы такие материалы, как шпатлевка и шпатели для маскировки трещин, паркетный лак или масло и валики, либо кисти для нанесения финального покрытия.
Особенности проведения процедуры своими руками
Болгарка с насадками на «липучках»Любой строительный процесс, в том числе и шлифовка паркета своими руками, делят на три стадии. К ним относятся подготовительная, непосредственная шлифовка, финишные работы.
Под подготовительными работами подразумевается устранение из помещения всей мебели, ковров и плинтусов, если последние не прикручены к полу намертво. Затем, всю поверхность пола осматривают на предмет существенных повреждений паркетной доски, торчащих из нее гвоздей. При обнаружении повреждения необходимо сразу же устранить, а гвозди погрузить в доску, как минимум, на два-три миллиметра. После всех ремонтных работ пол нужно вымыть и пропылесосить.
Также важно уделить внимание экипировке работника, поскольку даже при минимальном уровне пыли, органам зрения, дыхания и кожным покровам может грозить опасность. Поэтому необходимо подготовить комбинезон или рабочий халат, перчатки, головной убор, очки, респиратор и, при машинной шлифовке, строительные наушники или беруши, и только после этого работник готов шлифовать поверхности.
В начале шлифовки в помещении открывают все окна и закрывают двери. В зависимости же от того, какой из методов проведения работ доступен по сумме бюджета, перечень и количество этапов непосредственной шлифовки будет меняться.
Циклевка паркета вручную
При проведении самого бюджетного типа работ важно иметь достаточный запас времени и сил. Процесс шлифования пола при помощи ручной циклевки или наждачной бумаги сложен и требует значительных физических затрат.
При помощи ручной циклевки необходимо снять верхний слой покрытия паркета. Процедуру в данном случае проводят на четвереньках. При этом важно помнить, что снимать слой нужно вдоль волокон древесины. После полного осуществления шлифовки, поверхность можно дополнительно обработать мелкой наждачной бумагой для устранения неровностей.
Машинная циклевка паркета своими руками
Получив в аренду все необходимое оборудование, можно приступать к работе. Машинная шлифовка паркета делится на три этапа: глубокая шлифовка, шлифовка труднодоступных мест, тонкая шлифовка.
Для первого этапа используют машину барабанного типа, заправленную грубой наждачной бумагой (№60 является универсальной бумагой для подобных работ). При этом, сначала машина проходит из угла в угол по диагонали пола, а затем, двигаясь параллельно одной из стен, не забывая о движении вдоль волокон древесины паркета.
После завершения первого этапа, такой же бумагой, но уже при помощи машины типа «сапожок», проводят циклевку в труднодоступных местах комнаты. Под такими местами понимаются углы, пространство под радиаторами отопления между колоннами или перегородками.
Завершают шлифовку применением плоскошлифовальной машины, которая сглаживает возможные последствия работы машины барабанного типа. Таким образом, достигается максимально гладкая поверхность пола.
Финишные работы по шлифовке паркета
На данной стадии работ проводят устранение сколов и трещин при помощи шпаклевки, а также финальное покрытие лаком или маслом. Перед каждым новым действием пол нужно тщательно пылесосить.
Шпаклюют паркет при помощи подобранной в тон древесине шпаклевки, смешанной с древесной пылью, получившейся в результате циклевки. Сначала обрабатывают трещины и сколы, затем состав наносят на все полотно пола. После проведения шпаклевки понадобится дополнительная обработка поверхности плоскошлифовальной машиной, чтобы снять излишки материала.
Лак на обновленный паркет наносят в три слоя. Причем, после первого нанесения снова используют плоскошлифовальную машину или ручную шлифовку, при помощи которой устраняют древесный ворс, поднявшийся под воздействием лака. При нанесении лака важна оперативность, так как малейшее промедление приведет к неравномерному застыванию, что испортит всю проделанную работу.
Заказать качественную шлифовку паркета
Не имея должного опыта, заниматься циклевкой пола можно бесконечно долго, и все равно не достичь нужного результата. Для того чтобы сохранить деньги, время и здоровье, стоит обратиться к профессионалам нашей компании. Мы быстро и качественно выполняем любой объем работ по шлифовке паркета разной степени сложности. При этом стоимость работ уже не раз приятно удивляла даже самых экономных клиентов!
Технология циклевки паркета своими руками
Паркет – покрытие более чем капризное и требует периодического ухода. Время от времени такие полы необходимо циклевать и шлифовать. Технологически эти процессы достаточно сложны и проводятся с использованием специального дорогостоящего оборудования.
Однако, при желании последнее можно взять в аренду в какой-нибудь строительной компании и попробовать обновить полы самостоятельно. Далее и разберемся с тем, как делается шлифовка и циклевка паркета своими руками.
Для чего нужны циклевка и шлифовка
Деревянное покрытие пола, испытывая постоянные нагрузки, постепенно теряет первоначальный привлекательный внешний вид. Конечно, в этом случае требуется ремонт паркета. Циклевка и последующая шлифовка позволяют выровнять поверхность и вернуть ей былой лоск.
Со временем на паркете появляются сколы и царапиныДля чего нужна циклевка
Первое, что обычно нужно сделать при ремонте паркета – это снять старое лаковое покрытие и удалить верхний, потемневший слой древесины. Данный процесс и называется циклевкой. Помимо всего прочего эта процедура позволяет убрать мелкие трещины, царапины, сколы и разного рода загрязнения. Делается циклевка с помощью шлифовальной машины.
Циклевка делается для того, чтобы удалить с поверхности дерева грязь и убрать разного рода повреждения[su_label type=»success»]На заметку:[/su_label] [su_highlight background=»#E0FEC7″]В советские времена плашки выпускались очень толстыми, а поэтому циклевание паркета (штучного и щитового) часто выполняли вручную, просто снимая верхний слой стружки острым скребком. С современным тонким паркетом подобную процедуру профессионалы советуют проводить только в самом крайнем случае.[/su_highlight]
Зачем проводят шлифовку
Закончив выравнивание поверхности циклеванием, при необходимости приступают к заделыванию оставшихся глубоких трещин и сколов шпаклевкой по дереву. На следующем этапе пол опять проходят шлифовальной машинкой для того, чтобы сделать поверхность абсолютно гладкой. Последняя процедура и называется шлифовкой.
Шлифовка необходима для того, чтобы сделать пол максимально гладкимОбработка паркета своими руками
Далее рассмотрим, как именно выполняются шлифовка и циклевка.
Как циклевать паркет своими руками машинкой
Для того, чтобы выполнить циклевку, нужно приготовить следующее оборудование:
- Шлифовальную машинку барабанного типа. Ее и другое оборудование можно арендовать в какой-нибудь компании, занимающейся укладкой и ремонтом деревянных полов. Аренда барабанной машинки стоит примерно 1000р в сутки (на 2014г).
- Углошлифовальную машинку для зачистки труднодоступных мест (примерно 800р в сутки).
Также понадобятся расходные материалы:
- Грубая наждачка (Р36-Р40).
- Паркетная шпаклевка.
[su_label type=»info»]Совет:[/su_label] [su_highlight background=»#D9F0F9″]Шлифовальная машинка издает очень громкий «визжащий» звук. Поэтому циклевать пол стоит только днем, когда соседи на работе.[/su_highlight]
Отциклевать паркет можно следующим образом:
- Первый этап – вынос мебели, ковров и других предметов обстановки.
- Далее осматривают паркет на предмет вышедших из него наружу шляпок крепежных гвоздей. При необходимости утапливают их обратно.
- На барабан надевают наждачку.
- Заводят машинку таким образом, чтобы барабан находился над поверхностью паркета.
- Дожидаются, когда барабан наберет полные обороты, и аккуратно опускают его.
- Проходят всю поверхность пола, стараясь двигать циклей равномерно. Если продержать ее на одном месте слишком долго, можно выбить ямку.
[su_label type=»important»]Важно:[/su_label] [su_highlight background=»#F7D1CD»]Нельзя также долго двигать машинкой в направлении поперек волокон. Это может привести к скалыванию и выщерблению плашек.[/su_highlight]
Как правильно циклевать паркет с разным рисунком? Машинку нужно двигать:
- Под углом в 45гр к плашкам в том случае, если паркет уложен «елочкой».
- Сначала поперек комнаты, затем вдоль нее (по два раза) для фигурного паркета.
[su_label type=»warning»]Важно:[/su_label] [su_highlight background=»#FFEED5″]Художественный паркет выполняется из мелкослойной древесины. Поэтому циклевать и шлифовать его обычной шлифовальной машинкой нельзя. Обрабатывают его маленькой углошлифовальной ручной небольшими участочками с учетом рисунка. [/su_highlight]
- Проходят углошлифовальной машинкой все труднодоступные места.
Шпаклевку для заделки оставшихся после циклевки трещин и сколов делают путем перемешивания клея ПВХ с древесной пылью (1*3). Заделке подлежат только трещины шириной не более 0.5см.
Надеемся, теперь вам понятно, как выполняется циклевка паркета. Видео ниже демонстрирует этот процесс во всех подробностях.
[su_youtube url=»http://www.youtube.com/watch?v=slgZVYTiozM»]
Как правильно отциклевать пол ручной циклей
Иногда бывает так, что возможности взять в аренду шлифмашинку нет. В этом случае можно попробовать сделать циклевку паркета своими руками с помощью скребка-цикли.
Для ручной циклевки деревянной поверхности используется цикля скребокРаботу эту выполняют, стоя на коленях. Сначала увлажняют небольшой кусок паркета тряпкой, а затем счищают верхний слой древесины циклей. Для этого ее берут обеими руками, плотно прижимают к поверхности и двигают по направлению на себя.
[su_label type=»important»]Важно:[/su_label] [su_highlight background=»#F7D1CD»]Ведут инструмент обычно вдоль волокон. В труднодоступных местах можно делать это и поперек, следя при этом за тем, чтобы древесина не задиралась.[/su_highlight]
Ручная циклевка – процесс трудоемкий и длительный по времениВ процессе работы периодически собирают стружку, чтобы она не мешала. После того, как пол будет отциклеван полностью, его нужно просушить и пройти еще раз («по сухому») остро отточенной циклей. Итак, вы теперь знаете, как отциклевать паркет своими руками. Далее разберемся с тем, как правильно его отшлифовать.
Шлифовка паркета
После выравнивания поверхности пола и удаления слоя лака приступают к чистовой шлифовке. Для выполнения этой процедуры понадобятся:
- Плоскошлифовальная машинка (аренда – 1000р в сутки).
- Углошлифовальная машинка для обработки труднодоступных мест.
- Промышленный пылесос для удаления пыли перед лакированием — (аренда – около 800р в сутки).
Из материалов нужно будет подготовить:
- Наждачку Р60-Р80 для чистовой шлифовки.
- Наждачку Р100-Р120 для снятия древесного ворса после лакирования.
- Три диска для углошлифовальной машинки (на 20м2).
- Лак для паркета (5кг на 20м2).
Итак, как шлифовать паркет правильно? Шлифовка паркета любого рисунка выполняется сначала вдоль комнаты, а затем поперек. Правила работы с машинкой при этом такие же, как и при циклевке.
После шлифовки полы лакируются с использованием средства, подходящего к данному конкретному типу паркета. Как только паркет просохнет, его шлифуют еще раз, используя при этом еще более мелкую наждачку. Это необходимо для того, чтобы убрать вставший после лакирования древесный ворс.
Шлифовка позволяет добиться максимальной ровности и гладкости паркетаЧто делать дальше?
Хозяев квартир наверняка интересует и то, чем покрыть паркет после циклевки и шлифовки. Для обработки могут быть использованы, к примеру, масло, мастика, морилка или воск. Однако чаще всего паркет покрывают все же лаком.
[su_label type=»success»]Совет:[/su_label] [su_highlight background=»#E0FEC7″]Покупайте лак для паркета только в магазинах с хорошей репутацией. Недобросовестные продавцы часто реализуют перемерзший при перевозке и хранении. Такой лак через пару недель пойдет пузырями.[/su_highlight]
Самостоятельная шлифовка паркета своими руками (видео):
[su_youtube url=»http://www.youtube.com/watch?v=O3LXStYyeHM»]
Как видите, технология циклевки и шлифовки паркета достаточно сложна. Самостоятельно обработать пол, конечно, можно, но перед этим все же следует хорошенько подумать. Возможно, лучше будет поручить эту работу специалисту.
как выполняется «циклевка паркета без циклевки»
Чтобы вернуть роскошь и отличный внешний вид старому паркету, специалисты рекомендуют использовать циклевку. Принцип такого «мероприятия» заключается в снятии верхнего (состаренного) слоя на паркетных плашках с помощью ручной циклевки или специальной машины. Вряд ли у каждого в доме найдется циклевочная машина – этот агрегат дорогой, громоздкий и используется не настолько часто, чтобы оправдать его приобретение.
Чтобы не обращаться за помощью в специализированные конторы (циклевочные работы, кстати, стоят достаточно дорого), целесообразно научиться проводить рассматриваемый тип работ по паркету своими руками.
Оглавление: 1. Устраняем дефекты паркета 2. Инструкция по циклевке паркета своими руками
Устраняем дефекты паркета
Вообще, это первый этап работ по циклевке паркета, поэтому его нужно проводить внимательно, аккуратно и качественно. Нельзя циклевать паркет, если плашки рассохлись, приподнялись, покрылись трещинами, отошли друг от друга, скрипят при хождении по ним. Устранить дефекты паркета перед циклевкой можно следующим образом:
- Если паркетные плашки расшатались, то можно в них просверлить отверстия, забить в них гвозди так, чтобы шляпки их были «утоплены» в дереве, а образовавшиеся вмятины нужно зашпаклевать.
- Скрип паркетного пола также можно устранить. Нужно точно определить локализацию/очаг неприятного звука, выбрать раздвинутые плашки, расширить это отверстие и вбить в него деревянный клин, предварительно смазав его клеем ПВА. Не забудьте выровнять поверхность в уровень, и скрип исчезнет навсегда.
- В случае образования щелей между паркетными плашками их нужно обязательно обработать специальной замазкой. Затем нужно дождаться ее полного высыхания и тщательно зашлифовать куском наждачной бумаги.
- Любые выбоины, углубления также нужно зашпаклевать. Чтобы упростить себе задачу, вырежьте трафарет из картона или тонкой бумаги – так неповрежденный пол останется чистым, да и шлифовка обработанного участка будет легкой.
- Если паркетные плашки выпадают из своего места расположения, то их нужно либо приклеить на место, либо полностью заменить.
Рекомендуем прочитать: Ремонт паркета своими руками: способы устранения наиболее распространенных дефектов Уход за паркетом: основные правила и рекомендуемые средства
Инструкция по циклевке паркета своими руками
Прежде чем приступать непосредственно к рассматриваемому процессу, стоит узнать, а можно ли вообще подвергать такому испытанию имеющееся напольное покрытие или же такая процедура проводилась уже неоднократно. Запомните: паркетные плашки толщиной 15 мм можно восстанавливать циклеванием не более 5 раз, а если толщина плашек составляет 8 мм, то допускается вообще провести только 3 раза рассматриваемую процедуру.
Если смотреть на работу специалиста, то циклевка представляется чем-то простым и беспроблемным. Но такое возможно только при наличии специальной циклевочной машины, а ее как раз и нет в наличии. Поэтому стоит заранее подготовиться морально к трудной и не быстрой работе.
Циклевочной машины в наличии нет, но на помощь придет ручная циклевка, правда, работать ей достаточно тяжело.
Что нужно знать о ручной циклевке:
- такой ручной инструмент нужно покупать в магазине, хотя некоторые и стараются изготовить циклевку ручную своими силами – сомнительная экономия только добавит проблем в проведении работы;
- при покупке цикли нужно обратить внимание на длину ее ручки – пусть она будет маленькой, зато качество работы будет высоким;
- по ширине рассматриваемый инструмент должен быть 5 см (это максимально допустимый размер), потому что при работе с более широкой циклей руки будут очень быстро уставать.
Особенность циклевки паркета ручным способом:
- Слегка увлажняем паркетный пол перед началом работы. Это можно сделать из опрыскивателя, небольшого пульверизатора или веником, смахивая капли воды на поверхность пола. Влажность избавит от большого количества пыли.
- Начинать работу по циклеванию паркета лучше от середины комнаты, двигаясь к углам.
- Каждую обрабатываемую полосу нужно проходить сразу от начала до конца вдоль волокон. Прерываться и переходить на другие участки нельзя.
- Каждую полосу нужно пройти с циклевкой в руках дважды – первый раз в одном направлении, второй – в противоположном (обратном).
- Совершенно нормальным считается циклевание, проводящееся в течение нескольких дней – пока еще никому не удавалась закончить ручную циклевку в помещении средних размеров за одни сутки.
После того, как циклевка паркета закончена, нужно еще и отшлифовать поверхность. И для этого пригодится шлифовальная машинка – процесс не займет много времени. Если же такого инструмента в наличии нет, то придется пройти весь путь на коленках, но теперь не с циклевкой, а куском наждачной бумагой.
Обратите внимание: специалисты рекомендуют приобрести шлифовальную машинку – стоимость ее вполне доступная, да и пригодится этот инструмент еще не раз.
И только после окончания шлифовочного этапа восстановления паркета можно будет на поверхность наносить специальный лак. Но и тут стоит учитывать некоторые нюансы:
- если на старом паркете остались слишком темные участки (такое случается при условии восстановления слишком старого паркета), то общий цвет можно выровнять матовым паркетным лаком;
- лак наносится на пол в несколько слоев и между ними должны быть временные промежутки в 6-12 часов – время высыхания слоя;
- после высыхания каждого слоя паркетного лака нужно проводить промежуточное шлифование поверхности (вот и пригодится купленная шлифовальная машинка!).
Выполнить циклевку паркетного пола с помощью ручного инструмента вполне реально, но это займет слишком много времени и сил. Поэтому во многих случаях целесообразно обратиться за помощью к специалистам – быстро и качественно будет выполнена вся работа. Правда, и стоимость таких услуг не низкая.
Циклевка паркета своими руками в домашних условиях — Спец Паркет Групп
Как бы ни менялась мода на дизайн помещений, паркетные полы всегда остаются популярными. Эта вечная классика интерьеров будет актуальной, ведь дерево известно своими отличными эксплуатационными характеристиками и долговечностью. Благодаря этой статье вы узнаете, как правильно циклевать паркет своими руками. Собственноручно положенный пол – предмет гордости на долгие годы.Зачем нужно циклевание
Процесс ручного скобления (циклевки) паркета Технология предполагает выравнивание деревянных, а в некоторых случаях и пластмассовых, покрытий скоблением. Она может выполняться ручным или механизированным оборудованием. Предназначение состоит в удалении незначительных неровностей, образующихся на поверхности после порезки инструментом.
Процедура необходима в двух случаях:
- если паркет только что уложен;
- для реставрации старого покрытия.
Технология циклёвки
Процесс циклевки паркета ручной циклевочной машинкой Прежде всего, давайте определимся, какие инструменты понадобятся для процедуры.
- крупнозернистую наждачную бумагу с различными размерами зерна – 24, 36, 40;
- перчатки и респиратор;
- болгарку для ускорения обработки.

Как циклевать паркетную доску и при этом потратить намного меньше денег, по сравнению с приобретением специальных материалов и заказом работы специалистов? Это возможно. Понадобится совсем немного времени и усилий. Очень привлекательно то, что добиться отличного внешнего вида полов можно даже при применении обычной доски, не предназначенной для напольного использования.
Как и в случае со специальными материалами, важна правильная укладка. Недопустимо укладывать деревянные полы на неровную поверхность. С годами это приведёт к значительным деформациям и в итоге – к необходимости переделывать всю работу заново.
Для того чтобы циклёвка паркета своими руками проходила легче, необходимо предварительно смочить поверхность. Тогда в процессе обработки будет выделяться намного меньше пыли. Уже после завершения этой процедуры приступайте к шлифовке и лакированию полов.
У нас также можно посмотреть видео о том, как циклевать паркет своими руками. С такой работой может справиться даже непрофессионал. Восстановить красоту деревянного пола значительно дешевле, чем заново его перестилать.
Паркет — все, что вам нужно знать
Фото: istockphoto.com
Когда дело доходит до изысканного напольного покрытия, паркет царит. Построенный из небольших кусков твердой древесины, соединенных вместе геометрическими узорами, паркетный пол добавляет эффектный элемент дизайна в любую комнату. В Соединенных Штатах паркет достиг пика популярности в 1960-х годах, а затем, как и во многих других тенденциях бума, спрос снизился.
Однако в последнее время паркетные полы начали возвращаться, отчасти благодаря новым технологиям производства, которые предлагают потребителям более широкий выбор древесных пород и мотивов.Так что продолжайте читать, чтобы узнать о плюсах и минусах паркета, ценах, установке и уходе, чтобы решить, подходит ли вам это смелое заявление.
Фото: istockphoto.com
Что такое паркет?
Parquet происходит от французского термина «паркет», что означает «небольшой отсек». Он возник во Франции в 17 веке, где ремесленники создавали сложные конструкции, вырезая и соединяя небольшие геометрические куски дерева вместе, по одному, а затем приклеивая их к полу.Из-за необходимых навыков и времени паркетные полы изначально были уделом богатых семей и общественных зданий. Некоторые из самых ранних образцов все еще существуют, например, Galerie d’Hercule в отеле Lambert в Париже, и сами по себе считаются произведениями искусства.
Возможности и цены
В то время как мастера все еще могут собирать индивидуальный паркет, подавляющее большинство современных паркетных полов изготавливается из квадратных плиток с деревянными полосками, приклеенными к сетке или тонкой фанерной основе.
Изготовленный на заказ паркет сегодня редко можно встретить в жилых домах, потому что он по-прежнему требует индивидуальной резки деревянных частей и их сборки в виде мозаики, чтобы сформировать мозаику, мандалу и другие замысловатые конструкции. Те немногие компании, которые специализируются на изготовлении индивидуального паркета, берут от 20 до 45 долларов за квадратный фут или больше, в зависимости от уровня сложности.
Паркетная плитка для пола сегодня является предпочтительным продуктом для дома, и она удобна для самостоятельной работы. Для изготовления этой плитки популярны различные породы дерева, в том числе дуб, каштан, ясень и орех, а также некоторые экзотические породы дерева и бамбук.Плитка для паркета продается в картонных коробках, в квадратах размером 9, 12 и 18 дюймов. При установке домовладельцем паркетный пол стоит от 3 до 5 долларов за квадратный фут. Профессиональная установка паркетной плитки повысит стоимость примерно до 7-10 долларов за квадратный фут.
Паркет Плюсы и минусы
Прежде чем вкладывать время и деньги в паркет, внимательно рассмотрите положительные и отрицательные стороны этого пола.
ПРОФИ
- Разнообразие, с десятками доступных сложных узоров.
- Теплая привлекательность натурального дерева.
- Укладка плитки удобна в использовании и не требует прибивания гвоздей.
МИНУСЫ
- Ремонт может оказаться проблемой (см. Ниже).
- Не следует устанавливать ниже уровня земли (в подвалах) из-за общих проблем с влажностью.
- Не подходит для помещений с высокой влажностью, включая ванные комнаты и прачечные.
Проконсультируйтесь со специалистом по напольным покрытиям
Найдите лицензированных экспертов по напольным покрытиям в вашем районе и получите бесплатную и бесплатную смету для вашего проекта.
+Советы по установке
Многие подрядчики и специалисты по укладке паркета имеют большой опыт укладки паркетной плитки, но независимо от того, решите ли вы пойти с профессионалом или взяться за работу самостоятельно, следующие советы дадут вам представление о том, что для этого нужно. Помните, что спецификации производителей различаются, поэтому всегда следуйте инструкциям, вложенным в картонную коробку с паркетной плиткой.
Фото: istockphoto.com
- Подготовка к установке. Паркетный пол следует укладывать на устойчивое основание, например, на прочный черновой пол. Основание должно быть сухим и ровным. Перед установкой снимите плинтусы.
- Дайте акклиматизироваться. Паркет — это натуральное дерево, и его необходимо адаптировать к помещению, где он будет укладываться, чтобы в дальнейшем снизить риск образования щелей между планками. Стандартное время акклиматизации лиственных пород — две недели. Просто установите коробки в комнате; не нужно вынимать плитку. Деревянные планки могут в это время незаметно двигаться, поскольку они приспосабливаются к температуре и влажности.
- Тщательно продумайте свой макет. Рисунок паркетной плитки повторяется с каждой последующей плиткой, и если ряды не идеально прямые или не выровнены точно со стенами, конечный результат будет дилетантским. Не все комнаты идеально квадратные, и это необходимо учитывать при создании планировки.
Плитка поставляется с подробными инструкциями по разработке планировки этажа. Следуйте этим инструкциям до буквы для получения профессиональных результатов.
- Используйте рекомендованные материалы и инструменты. Рекомендованные инструменты и материалы разработаны для достижения наилучших результатов, поэтому не стоит просто использовать то, что есть под рукой. Мало того, что тип клея может варьироваться в зависимости от марки плитки, производитель часто рекомендует шпатель с зубцами определенного размера.
- Режьте лобзиком, а не циркулярной пилой. В то время как обычная практика резки других видов деревянных полов с помощью циркулярной пилы, паркет часто бывает с небольшими проволоками, встроенными в деревянные планки. Эти провода могут запутаться во вращающемся полотне циркулярной пилы, создавая опасность, разрушая плитку и потенциально повреждая пилу.Движение лобзика вверх-вниз без проблем прорезает дерево и проволоку.
Уход за паркетным полом
Правильный уход защитит ваши вложения, и ваши паркетные полы будут выглядеть красиво в течение многих лет.
- Для ежедневного ухода протрите пол сухой шваброй из микрофибры или шерсти, чтобы удалить пыль и легкие крошки.
- Незамедлительно вытирайте пролитую жидкость впитывающими бумажными полотенцами. Для удаления липких пятен используйте влажную мочалку или губку.
- Пылесосьте раз в неделю или при необходимости с помощью насадки-щетки.
- Используйте чистящее средство, предназначенное для деревянных полов, один раз в месяц или по мере необходимости, чтобы сохранить яркий блестящий вид.
- Избегайте пыления деревянной мебели продуктов, которые могут сделать паркетный пол опасно скользким.
- Не используйте паровую швабру. Тепло и влага могут повредить отделку и даже разбухнуть древесину.
- Не наносите воск для пола или полирующие средства, предназначенные для полов из виниловой или керамической плитки — они могут повредить отделку.
- Положите коврики в места с интенсивным движением, чтобы защитить покрытие пола.
- Используйте липкие силиконовые или войлочные протекторы под ножки мебели, чтобы не поцарапать их.
Фото: istockphoto.com
Реставрация паркетного пола
Осторожно, паркетный пол должен сохранять блеск в течение 10–15 лет или дольше. Однако со временем даже самый ухоженный деревянный пол может начать выглядеть немного унылым, особенно в местах с интенсивным движением. Когда поверхностный слой изнашивается, возможна повторная полировка, но, вероятно, это должен делать профессионал по настилу деревянных полов.
Повторная отделка паркетного пола может быть сложной задачей, потому что удаление старой отделки требует шлифования, а дерево всегда следует шлифовать по направлению волокон, чтобы предотвратить образование поперечных волокон. Поскольку на паркетном полу есть кусочки древесины, идущие в разных направлениях, удаление старой отделки без повреждения поверхности древесины под ним требует кропотливого ухода.
Проконсультируйтесь со специалистом по напольным покрытиям
Найдите лицензированных экспертов по напольным покрытиям в вашем районе и получите бесплатную, бесплатную смету для вашего проекта.
HARO Engineered Wood Flooring Паркет из агатового дуба Паркетная панель Loop 4V
Эксклюзивный паркет из агатового дуба
Агатовый дуб сам по себе привлекает внимание, потому что благородные лиственные породы имеют уникальный темный цвет. Создав этот пол, производитель паркета HARO демонстрирует, что возможно с таким высоким уровнем мастерства. Благодаря этому паркетному полу атмосферу величественного замка теперь можно перенести и в ваш собственный дом: ведь красивый паркетный пол впечатляет не только в освященных веками стенах.Даже в современном доме паркет из восьми дубов привлекает внимание
Высокое качество от производителя паркета
Производство высококачественного паркета требует особой тщательности и множества рабочих операций. Этим полом традиционный производитель HARO показывает, что он полностью справился с этим. При этом, как и с этой почвой, снова и снова используются современные технологии для достижения наилучших результатов. Этот этаж завораживает всех, кто заходит в комнату. Древесина агатового дуба уложена в привлекательный узор в виде петель, что позволяет в полной мере раскрыть различные цветовые нюансы.Квадратный формат необычен и является идеальным решением, особенно для больших помещений.
Каждый квадратик имеет длину стороны 65 см. Паркетный пол имеет фаску по периметру, что еще больше подчеркивает потрясающий вид. Пол укладывается полностью приклеенным, для чего HARO предлагает подходящий эластичный клей на экологической основе. В процессе склеивания делается посторонняя канавка, обеспечивающая надежную фиксацию. Паркетный пол имеет высоту 18 мм, а значит, его можно укладывать практически в любом помещении.
Слой износа пола 3,5 мм. Его можно отшлифовать и повторно запечатать несколько раз. Он состоит из 3 слоев: Под слоем износа агатового дуба находится центральный слой бруска из массива дерева. Это обеспечивает стабильность, даже если пол когда-то служил танцполом. Под ним находится деформирующий слой фанеры хвойных пород, который служит противовесом слою износа. Паркетный пол покрыт натуральным маслом Oleovera, которое эффективно защищает его от всех воздействий окружающей среды.
- Паркетные доски с петлевым рисунком
- Склеивание с помощью эластичного клея и внешней канавки
- Средний слой из массива дерева в трехслойной структуре
- Нежный блеск благодаря натуральному маслу Oleovera
Что особенного в HARO: Производство паркета HARO Петля для паркета из дуба агат 4V
Деревянный пол создает особую атмосферу в вашем доме: дерево — это натуральный материал, который впитывает влагу из окружающей среды и снова высвобождает ее, когда воздух сухой.Открытое уплотнение натуральным маслом сохраняет эту способность. Все паркетные полы HARO производятся из древесины, сертифицированной PEFC, которая также поступает из экологически чистых лесов. Многочисленные награды, такие как «Голубой ангел», также подтверждают, что пол полезен для жизни и подходит для семей. Особенно безопасное и красивое решение найдут люди, страдающие аллергией, и семьи с маленькими детьми.
Паркет в формате доски привносит что-то особенное в ваш дом: в то же время этот пол не является деликатным предметом роскоши.Для очистки его можно просто протереть влажной тканью. Так что играть и танцевать здесь можно абсолютно беззаботно.
Бордюры для паркетного пола, прибитые лицевыми гвоздями
Бордюры для паркета с лицевым гвоздем
Около 1885-1920, Бруклин, Нью-Йорк
Этот сайт предназначен для полов, прибитых лицевыми гвоздями, иногда называемых прибитыми сверху. Вы видите гвозди. Паркет — это дерево, нарезанное геометрическим узором, иногда называемое мозаичным полом. Они вычурны и декоративны.Полы традиционно имели толщину 5/16 дюйма. Лучшими годами были 1890-1915 годы.
Содержание в разделах ниже:
Старые каталоги и другие публикации
Коллекция изображений
- 322 изображения границ этажей сгруппированы в 16 основных групп или страниц. Затем разделитесь на подгруппы.
У 62 подгрупп есть эскизы ниже.
- Все изображения перечислены с миниатюрами на:
- A Google Map имеет метки в местах расположения изображений.Посмотрите на районы в Бруклине, где в эти годы строились более красивые дома.
- Электронные таблицы, которые рассчитывают размеры штук, перечислены на странице Список таблиц .
Функциональные полосы:
Угловые узлы:
Меандры (греческие клавиши / лады):
Двухстрочные меандры:
Лента, сложенная одинарной складкой, плоская:
Две сложенные плоские ленты:
Открытая, сложенная одинарная лента:
Лента (и) на трубе:
Две скрученные ленты под углом 90 ° (без зазоров):
Две скрученные ленты под углом 90 ° (зазоры):
Две скрученные ленты 30 ° / 120 °:
Два перекрученных неравномерного промежутка:
Три ленты:
Четыре ленты:
Повторений:
Связанные цепи:
Положить пол
Вудс
- Для полов использовалась древесина Нового Света.
В основном это североамериканские леса: вишня, клен, дуб, темный дуб (?), Черный орех, реже: белый ясень и падуб. Самой популярной древесиной в Южной Америке было красное дерево [сегодня его все называют гондурасским красным деревом], реже — палисандр, вермилион, PrimaVera. Некоторая информация о распространенности этих лесов содержится в Справочнике по породам древесины NWFA.
- Гондурасское красное дерево стоит дорого. Ближайшая древесина, продаваемая сегодня, — это сапеле, или африканское красное дерево. Зерно имеет менее ровный рисунок.
- Древесина пола должна акклиматизироваться в вашем доме в течение месяца или двух перед укладкой.Это гораздо меньше проблем, если пол распилен на четверть. Но на это еще нужна пара недель.
- В старых полах (не в особняках) обычно используются только эти формы: правильные (равнобедренные) треугольники, квадраты, прямоугольники, параллелограммы, равнобедренные трапеции и правильные трапеции. Углы чаще всего составляют 45 ° / 90 °.
Все куски были бы распилены. В наши дни не все поставщики распиливают. См. Следующий раздел.
Поставщики границ пола
- Oshkosh Designs. Большой выбор древесины любой толщины от 5/16 «до 3/4».Более сложные узоры, круги и т. Д. Вырезаются лазером, а геометрические разрезы вырезаются пилой. Они могут изготовить паркет с блокировкой пальца в любой комбинации дерева, количества пальцев, ширины пальцев (минимум 1 дюйм) и длины пальцев. Если вы заказываете менее 50 SF, взимается дополнительная плата в размере 150 долларов США. Они могут быть в любом толщиной от 5/16 «с бумажной лентой до 3/4» сплошной. Они также могут продавать белый дуб произвольной длины или четвертьфоновый белый дуб с квадратными краями любой толщины и ширины. Вынуждает обратиться к местным дилерам, если таковые имеются. ваш район.
- Дилер Oshkosh в Нью-Йорке: PID Floors. Дилер продает Oshkosh, а также вручную распиливает детали для изготовления бордюров на своем предприятии в Бруклине.
Также продаются полоски и блокировка для пальцев. Любой белый дуб можно распиливать на четверть. Ваш выбор толщины. Не укладывает облицовочные полы с гвоздями.
- Редкоземельные лиственные породы. Столярные изделия на заказ. Можно сделать любую толщину и все, что угодно. Все детали распилены. Только прямые. Имеет более 100 пород домашних и экзотических лиственных пород.
- Wood Flooring USA — компания из Бруклина, которая производит и устанавливает полы в этом районе.У них есть выбор бордюров на своем участке. Они утверждают, что делают границу фабрикации. Я не знал об этой компании, когда проводил исследования перед установкой пола, прибитого гвоздями. Это был бы универсальный шоппинг, вместо того, чтобы использовать три наряда для уборки пола. Глядя на фотографии, я вижу, что дуб не распилен на четверть. Гвозди тоже не видно. Толщина неизвестна.
- Царь Этажей. Могу сделать на вашу толщину. Все детали вырезаны на фрезерном станке с ЧПУ. Их лес.
Красное дерево не указано. Можно использовать рифт / четверть пиленый белый дуб. Наименьший из представленных на фото паркетных блоков — 9 дюймов. Они могут сделать 6 полосок толщиной 8-3 / 4 дюйма. Минимальный заказ — 100 кв. Футов. Не поставляет ленточные полы.
- Мир инкрустации. Базируется в Пенсильвании, использует трех разных производителей (два в США и один в Польше). Разные породы древесины у каждого поставщика. Может быть любой толщины. Для резки используется лазер. Можно использовать дуб белый четвертичный. Полы не продаются. Могу предоставить паркет, хотя блокировка пальца не показана.Это очень дорого, начинается с площади 12 дюймов. Любит предварительную отделку.
- США Инкрустации. Имеет оптовую цену при заказе архитектора или строителя. Наверное, только лазер режет куски. Я спросил и не получил ответа. Бордюры могут быть любой толщины, но другая древесина, которую они продают, имеет только 5/8 дюйма с предварительной отделкой и 3/4 дюйма. Это их леса. Красное дерево не показано, но они могут его использовать.
- Поставщик в Румынии: Pavex Parquet (также нажмите для перехода на предыдущую страницу). Цены включают авиаперевозку и доставку до двери.Они используют только эти семь лесов. Вы можете использовать платан для клена и сапеле для красного дерева.
- Поставщик в Польше: напольные вкладыши в стиле ренессанс. Юджин делал инкрустации в США, но вернулся на родину. Любой толщины. Инкрустации наклеиваются на 1/4 дюйма на любую основу, необходимую для достижения желаемой толщины. Большинство из них не является традиционным распилом. [Длительное время изготовления]
- Поставщик в Украине: Premier Parquet.
- Бордюры могут быть изготовлены на заказ компанией Premium Wood Flooring (a.k.a. ПК. Паркетные полы) на 3-й авеню на 31-й улице. По словам кратких парней на этаже, единственные бордюрные породы дерева, доступные в 5/16 «: белый дуб, перуанский орех и красное дерево Сантос. Они также продаются в 5/16» 2 «широкополосная древесина в полосах и 12-дюймовые квадратные паркетные блоки (с полосами шириной 2 дюйма).
В настоящее время они недоступны для других размеров поля. Только красный или белый дуб. Однако, если вы доберетесь до Мишель, она сможет заказать продукцию Oshkosh.
- Супруги, работающие с Premier Inlays, вышли на пенсию.Однако вы все еще можете увидеть их границы на заархивированном сайте.
Поставщики деревянных полов
Установка
- Полы, прибитые лицевыми гвоздями, имеют толщину 5/16 дюйма. В каталоге Roberts 1903 говорится, что они используют гвозди для полировки толщиной 1-1 / 4 дюйма, 15 калибра. Эти гвозди можно вводить в пневматический гвоздезабиватель Finish. Затем можно использовать пробойник. , погрузите каждый стержень на 1/16 дюйма ниже поверхности дерева. Вот несколько советов для 5/16-дюймовых полов с прибивкой сверху. Не совершайте ошибку, покупая гвозди из нержавеющей стали.Помимо того, что они дорогие, они не будут темнеть должным образом.
- Oshkosh Designs имеет Общее руководство по установке № 5 для необработанных паркетных полов.
- Клеи на безводной основе необходимы для необработанного паркета:
- Используйте шпатель с квадратными выемками 1/8 «× 1/8» × 1/8 «. В Home Depot.
- Чтобы снять бумажную ленту, которая находится на верхней части паркета, используйте барабанную шлифовальную машину для полов.
- Для полов:
- В блоге Brownstoner раньше был форум по напольным покрытиям.Теперь все сообщения на форуме в одном большом потоке. Участники форума по напольным покрытиям рекомендовали Хосе Самбрано из Better Wood Floors. Не уверен, сколько у него полов, прибитых гвоздями.
- Человек, который, как я нашел, больше всего работал с этими этажами, — это Стаффорд Эллиот.
- Человек, владеющий коричневым камнем в Бед-Стаи, рекомендует Джорджа Луи по телефону 347-737-2364. Он отшлифовал, отполировал, окрасил и запечатал как оригинальные деревянные полы для реставрации, так и недавно установленные незаконченные деревянные полы и деревянные лестницы.Отличное качество работы, высший профессионализм (надежный, всегда оперативный и быстро выполняет работу без ущерба для качества) и отличный парень, с которым приятно работать.
Отделка под дерево
- Хорошие места для начала:
- Традиционная отделка, использованная при строительстве наших домов:
- Паста восковая. Он все еще используется сегодня. Он «затемняет древесину» и придает ей мягкий атласный блеск с низким глянцем. Он имеет слегка янтарный цвет и выглядит как воск. Иногда делается поверх проникающего герметика.Требует периодической повторной восковой обработки и полировки. Придется купить напольную машину. Стоимость машины будет компенсирована низкой начальной стоимостью. Однако вощеные полы не выдерживают воды. Не годится для кухни. Пример воска: DuraSeal. Если вам нужен один Стаффорд, Эллиот сделает их в Бруклине.
- Шеллак. Шеллак — это смола, выделяемая самкой лакового клопа. Каталог S.C. Johnson от 1893 года аргументирует использование воска, а не шеллака. Сверху можно нанести воск. Популярный до 1970 года. Пролитый алкоголь делает шеллак чувствительным к растворению.А шеллак реагирует на щелочные продукты, такие как аммиак и некоторые бытовые чистящие средства.
Вода также может смягчить шеллак, поэтому стандартные средства ухода за деревянным полом, например, обычная вода, вымытая шваброй, не подходят. Существовали специальные чистящие средства на основе растворителей, но, видимо, их уже нет. При естественном высыхании приобретает глянцевый блеск. Не годится для кухни.
- Лак. Это использовалось как грунтовка для воска или как законченная отделка. Лак традиционно представляет собой сочетание олифы, смолы и разбавителя или растворителя.Лаковые покрытия обычно глянцевые, но могут быть разработаны для получения атласного или полуглянцевого блеска за счет добавления «выравнивающих» агентов. Parquet-Lac был лаком из твердых ископаемых камедей. Он не содержал смолы. Те, кто сегодня выбирает лак, обычно ценят тот факт, что лак может быть окрашен в самые разные цвета. Лак более стойкий к износу или проникновению, чем шеллак, но все же не так прочен, как полиуретаны. Сегодня лак специально для полов продается только в Великобритании. Пример: бесцветный глянцевый лак для твердых полов Ronseal Diamond Hard Floor Varnish.
- Сегодня у нас есть покрытия с твердым воском:
Основным преимуществом такой отделки является то, что царапины или повреждения можно легко отремонтировать. Эта зона будет плавно сливаться с остальной частью пола. Это потому, что новое масло впитают только открытые (поврежденные) волокна древесины. Существующая отделка рядом с поцарапанной или поврежденной областью не примет новое масло. Никаких наложений или дополнительного наращивания отделки.
- Рубио Монокоат. Также их потребительский интернет-магазин.Имеет «тонкий блеск». Он очень матовый и наносится в один слой (оставляя тонкий слой). Чистый их самый близкий к ясному. Для более подробного обзора см .: Rubio — Лучшее затвердевшее масляное покрытие! Еще один обзор с картинками. Доступно на месте в PC Wood Floors & Supplies (3-я авеню, 31-я улица).
- Pallmann Magic Oil. Он «обеспечивает бархатистую, матовую поверхность, которая отталкивает грязь и воду, и придает полу богатый европейский вид, который натирают вручную».
По сравнению с Rubio, он имеет более толстую отделку и больший блеск.Если вы хотите еще больше блеска, отполируйте его еще немного, чтобы отполировать. Лучше всего смотрится с нанесенным вторым слоем. Оно никогда не будет глянцевым или даже полуглянцевым, но если вам нужен глубокий, бархатистый матовый вид, то это масло с твердым воском отвечает всем требованиям. Нейтральный — самый близкий к чистому. Обзор с картинками. Местных продавцов этого нет. Удачи в поиске этого. На Amazon продается только пылесос Паллманна.
- Прочие твердые воски: Bona и Woca [тонкий матовый блеск] и Carver и Ciranova.
- Eko Flooring and Woodwork в Восточном Вильямсбурге могут применять их. Но после того, как они узнали, что комната, в которой я хотел закончить, была размером всего 11 × 12 футов, они просто взорвали меня. Работа для них была недостаточной. Я бы использовал их только в том случае, если собирался нанести твердое восковое масло.
- Другие альтернативы:
- Три слоя уретана, модифицированного маслом Duraseal Oil.
Зачистка между слоями. Он «янтарь с возрастом и бывает разного уровня блеска» [сатин, полуглянцевый и глянцевый]. Некоторым не нравится уродливый старый оранжевый вид, который можно получить через пару лет.Особенно под воздействием яркого солнечного света. Можно купить на месте в PC Wood Floors & Supplies (3-я авеню на 31-й улице). На Amazon. Это то, что я закончил, с полуглянцевым блеском. Я использовал Стаффорда Эллиота.
- Проникающие герметики и масляные герметики. Вы выкладываете это дальше. То, что не впитывается, сотрите. Проблема в том, что полы нуждаются в постоянном уходе и повторном смазывании, чтобы не повредить их защиту.
- Полиуретан на водной основе. Совершенно ясно, никогда не желтеет. Как слой пластика на полу.Делает новый белый дуб холодным.
- Три слоя уретана, модифицированного маслом Duraseal Oil.
Разработка веб-сайтов
Видя полы
- Я хожу в Дни открытых дверей , в основном по воскресеньям. Я использую эти источники для списков.
Я просматриваю фотографии в комнате в поисках границ.
- Zillow День открытых дверей. На их карте нанесены границы кварталов, где расположены этажи.
- Поиск недвижимости New York Times. Теперь намного лучше, так как вы можете просматривать изображения, не заходя в список.Выбранные районы: Бедфорд-Стайвесант, Краун-Хайтс, Дитмас-Парк, Мидвуд, Парк-Слоуп, Парк-Слоуп-Юг, Проспект-Леффертс-Гарденс и Проспект-Парк-Юг. [Нет фильтра по годам постройки, поэтому нельзя отфильтровать новые здания.]
- StreetEasy Search. Выбранные районы: Бедфорд-Стайвесант, Краун-Хайтс, Дитмас-Парк, Мидвуд, Парк-Слоуп, Проспект-Хайтс, Проспект-Леффертс-Гарденс и Проспект-Парк Юг.
- Экскурсии по дому , чтобы увидеть Этажи (в порядке месяца):
- Park Slope [3-е воскресенье мая] [Не дружественный тур.Владельцам домов предлагается исчезнуть. Вам запрещено даже просить сфотографироваться на полу.]
- Проспект Леффертс Гарденс [обычно первое воскресенье июня, кроме пяти воскресений мая, затем 4-е воскресенье мая.
Но иногда на другом свидании.] [Лучшие этажи. Многие участники тура уже здесь.]
- Bedford-Stuyvesant [3-я суббота октября] [Почти все дома полностью отремонтированы. Немногие, если вообще есть, будут иметь этажи, которые стоит увидеть.]
- Ныне несуществующие:
- Форт Грин.Было первое воскресенье мая. Сейчас закончилось. [Только редкие полы, район был построен до того, как эти этажи вошли в моду.]
- Клинтон Хилл Проводился два раза в год по четным годам, первое воскресенье мая. Похоже, закончилось. [Только редкие полы, район был построен до того, как эти этажи вошли в моду.]
- Викторианский Флэтбуш. Сейчас не существует. [Было 2-е воскресенье июня, если не пять воскресений в мае, затем 1-е воскресенье июня] [Лучшие этажи. Многие участники тура уже здесь.]
- Crown Heights North [было в начале октября.на сайте теперь указано «Весна 2017». Сейчас не существует] [этажи были бы хороши]
- Проспект-Хайтс [проводился дважды в год осенью (2-е или 3-е воскресенье октября).
последний раз проводился в 2009 году] [окрестности устарели для границ]
Карты окрестностей
В поисках дома лет
- Отчеты об обозначении достопримечательностей: Если дом находится в районе с достопримечательностями, год и дополнительная информация обычно доступны в отчете округа.Вам нужно название района. Имеется единая карта со всеми отдельными и районными достопримечательностями: Discover NYC Landmarks. Щелкните по району, и появится ссылка на отчет о назначении, с распознаванием текста на старых. Прежде чем я нашел эту страницу, я удобно поместил отчеты и карты на свою страницу: Отчеты и карты с указанием избранных достопримечательностей Бруклина. Сайт города — это Designation Reports (но он не всегда находит действительные адреса в пределах района).
- Департамент строительства (DOB): Дата постройки новых домов будет указана в информационной системе здания DOB.Самый простой — получить его на StreetEasy.
DOB предоставляет годы для всех домов. 1899 год используется для всех домов до 1900 года. Год с 1900 по 1930 год близок к предположениям. После этого они в порядке.
- Год исследования из записей собственности Нью-Йорка:
- Найдите блок и лот в ACRIS. Номера лотов тогда не использовались. Вам нужно добавить с налоговых постов расстояние до переулков. Обычно это будет более короткий из используемых. Также обратите внимание на размер лота, как показано на карте. При использовании Google Streets может быть полезно иметь адреса совпадающих домов, построенных одновременно.
- Затем вы можете посетить DOB по адресу 210 Joralemon Street, 2-й этаж. Проблема в том, что несколько лет назад все книги были отправлены в Бизнес-центр Queens Департамента финансов Нью-Йорка на Ямайке, Квинс. Оставшиеся микрофильмы превращают задачу в тяжелую рыбалку. И только в Квинсе есть книги по WPA, с которых и стоит начать. (Сначала я сфотографирую страницу дома в книгах WPA.
) Рекомендуется поездка в Куинс. Расстояние до Парк-Слоупа на велосипеде составляет 16 км. Отделение — Городской регистр.
- N.B. Часто бывает, что в ранние годы они даже не записывали расстояние до переулка. Что вам нужно сделать, так это найти запись для дома на более поздний год (со страницы WPA), а затем, зная праводателя, вы отправитесь в прошлое, ища, когда праводатель был грантополучателем. Пока вы не получите как можно более ранние записи.
Me
Моя история
- В моем доме Джона Мэгиллигана 1892 года в Парк-Слоуп есть только гостиная с деревянным полом, прибитым лицевой стороной к стене.В комнате есть общий узловой угол. Первый владелец этого дома решил вместо этого покрыть дом ситцем, оставив мне сосновые полы. В то время шерстяной ковер был новым (введен в 1877 г.) и более дорогим. Продавцы паркетного пола назвали этот несъемный ковер негигиеничным. Пылесосы с электроприводом не использовались в Соединенных Штатах до 1908 года.
До этого использовались деревянные подметальные машины.
Я восхищался тем, чего у меня не было. Я хотел установить на моей новой кухне пол с лицевым гвоздем и бордюром.Мне нужно было выбрать несколько примеров. И научитесь делать это по-настоящему. В сети не было централизованной информации. Я веду свои заметки в основном HTML, и этот сайт последовал. Я выбрал №23.
Контакт
Apache Arrow: чтение DataFrame с нулевой памятью
Первой подсказкой был Томас Вольф, имеющий отношение к Apache Arrow. Apache Arrow — это проект, начатый Уэсом МакКинни с целью создания интерфейса для обмена данными:
Apache Arrow — это кросс-языковая платформа для разработки данных в памяти.Он определяет стандартизированный независимый от языка формат столбчатой памяти для плоских и иерархических данных, организованный для эффективных аналитических операций на современном оборудовании. Он также предоставляет вычислительные библиотеки, потоковую передачу сообщений с нулевым копированием и межпроцессное взаимодействие.
[1]
Что это значит?
До Arrow стандартным способом обмена данными между любым приложением или библиотекой было сохранение их на диск тем или иным способом. Поэтому, если библиотека .NET Core хочет передать данные в Python для анализа данных, есть вероятность, что кто-то выпишет файл (например,г. csv, json, Parquet,…), а затем снова прочитайте его с помощью Python. Оба шага, запись (сериализация) и чтение (десериализация) являются дорогостоящими и медленными — и чем больше набор данных, тем больше времени требуется для выполнения каждого из них.
Что, если бы существовал способ обмена данными напрямую через рукопожатие и нулевое копирование? Это может выглядеть так: .NET начнет болтать с Python, укажет на кучу данных в памяти и скажет: Привет, приятель, теперь это твой . И Python мог напрямую запрыгнуть на него, не таща его из одного места в другое.Разве это не было бы фантастически?
В этом вся суть Apache Arrow.
Это заставило меня задуматься — как я могу использовать Arrow? Изучив исходный код Hugging Face, я узнал, что проект использует PyArrow для чтения данных. До этого я связывал PyArrow с Parquet, столбчатым форматом хранения с высокой степенью сжатия. Итак, Parquet — это способ, которым Arrow обменивается данными? (Спойлер: это не так)
Традиционно данные хранятся на диске построчно. Столбцовое хранилище возникло из-за необходимости анализировать большие наборы данных и эффективно их агрегировать.Аналитика данных меньше интересуется строками данных (например, одна транзакция клиента, один журнал вызовов и т. Д.), А их агрегированными данными (например, общая сумма, потраченная клиентом, общее количество минут разговоров по регионам,…).
Строка или столбец, ориентированное хранилище (адаптировано из [4] с набором данных Palmer Station Penguin) Это привело к изменению ориентации: вместо того, чтобы хранить строку за строкой, столбцовое хранилище упорядочивает данные столбец за столбцом.
Parquet — это столбчатый формат файла, который имеет два основных преимущества [4]:
- Высокая степень сжатия: While.Файлы json или .csv по умолчанию не сжимаются, Parquet сжимает данные и, следовательно, экономит много места на диске. Таблицы обычно состоят из столбцов с большим количеством уникальных значений (высокая мощность; подумайте об уникальном идентификаторе пользователя ) и столбцов с небольшим количеством уникальных значений (низкая мощность; подумайте о стране ). Чем ниже мощность, тем лучше сжатие (может) работать — подробнее об этом в следующем разделе.
- Запрос файла / выталкивание фильтра: Удалите ненужные данные перед их чтением.Это сокращает время загрузки и оптимизирует потребление ресурсов. Если вам нужны только два столбца из таблицы с тысячами столбцов, вам не нужно сканировать все строки, чтобы получить два атрибута — вы напрямую извлекаете столбец целиком
Чтобы лучше понять разницу между Parquet и Arrow, мы нужно будет сделать объезд и получить некоторую интуицию для сжатия. Сжатие файлов само по себе огромная тема. Ниже приводится упрощенное повествование, отфильтрованное на основе моего собственного понимания темы.Это отступление поможет ответить на эти два вопроса:
- Как Parquet удается уменьшить размер файла до таких небольших размеров?
- Чем паркет отличается от Arrow?
Подбросьте монету
Представьте, что вы подбрасываете монету десять раз и записываете результат:
[Голова, Голова, Голова, Голова, Хвост, Хвост, Хвост, Голова, Хвост, Хвост]
А теперь попробуйте сказать результат вслух? Скорее всего, вы его сократите и скажете что-то вроде «4 раза голова, 3 раза хвост, голова и 2 раза хвост» :
[4 x голова, 3 x хвост, голова, 2 x хвост]
Это сжатие в действии (описанный алгоритм называется Run-length encoding [8]).Мы склонны естественно видеть закономерность и сокращать. Алгоритм сжатия тоже делает это — только с большей вычислительной мощностью и сложными правилами. Но этого примера должно быть достаточно, чтобы помочь нам понять ключевое различие: в то время как .csv использует буквальный подход и описывает каждую отдельную запись, Parquet сокращает (без потери информации).
Этого простого примера достаточно, чтобы также понять, почему степень сжатия может сильно различаться. Например, если порядок сортировки не имеет значения и вас просто интересует общее количество вхождений заголовка и хвоста, вы можете сначала отсортировать список, а затем сжатая версия будет выглядеть так:
[5 x Head, 5 x Tail]
Подразумевается, что если мы сначала отсортируем набор данных по всем столбцам, прежде чем сохранить его в Parquet, размер файла будет меньше по сравнению с несортированным.Степень сжатия будет тем выше, чем меньше мощность. Ожидается, что степень сжатия для каждого столбца будет уменьшаться по мере того, как он находится в порядке сортировки.
Стрелка сжата?
Таким образом, мы получили некоторое представление о том, почему файлы Parquet настолько малы по сравнению с несжатыми файлами . csv. Но как это связано со Стрелой?
Оказывается, это как раз одно из ключевых отличий. Паркет эффективно хранится на диске. А с помощью фильтра вниз вы можете уменьшить объем считываемых данных (т.е.е. выбрав только те столбцы, которые вам действительно нужны). Но когда вы хотите выполнить операции с данными, вашему компьютеру все равно необходимо распаковать сжатую информацию и занести ее в память. [2]
Стрелка с другой стороны — это формат с отображением в память. В своем сообщении в блоге Уэс МакКинни резюмирует это следующим образом:
«Конструкция сериализации стрелок обеспечивает« заголовок данных », который описывает точное расположение и размеры всех буферов памяти для всех столбцов в таблице.Это означает, что вы можете отображать в памяти огромные наборы данных размером больше RAM и оценивать алгоритмы в стиле pandas на их месте, не загружая их в память, как сейчас с pandas. Вы можете прочитать 1 мегабайт из середины таблицы размером 1 терабайт, и вы платите только за выполнение этих случайных чтений на общую сумму 1 мегабайт ».
[6]
Короче говоря, приложения могут напрямую работать с набором данных, хранящимся на диске, без необходимости полностью загружать его в память. Если вы помните первоначальный твит — это именно то, что там происходило.
Теперь давайте рассмотрим эти форматы данных. В качестве образца данных я использую набор данных Palmer Station Penguin. Так как он содержит только 350 строк, я передискретизирую его до 1 миллиона, чтобы разница в производительности стала более очевидной:
Запись файлов
В качестве следующего шага я записываю файлы на диск в трех форматах:
- csv ( DataFrame с отсутствующими значениями)
- Parquet (DataFrame с отсутствующими значениями)
- Arrow (DataFrame с отсутствующими значениями и без них)
Обратите внимание, что Arrow можно преобразовать в pandas только без выделения памяти (= нулевое копирование) при определенных условиях.Один из них: не должно быть значений NaN. Чтобы сравнить производительность с нулевым копированием и без него, я записываю файл Arrow один раз с пропущенными числовыми значениями и без них.
Результирующие размеры файлов:
Сравнение размеров файловParquet, как и ожидалось, является самым маленьким файлом — несмотря на случайную последовательность (перед записью файла сортировка не производилась), он показывает степень сжатия 80%. Arrow лишь немного меньше csv. Причина в том, что csv сохраняет даже числовые значения в виде строк, что занимает больше места на диске.Во всех случаях разница в размерах файлов с пропущенными значениями и без них незначительна (<0,5 МБ).
Время чтения
Теперь ключевая часть: производительность чтения. Сколько времени нужно, чтобы рассчитать среднюю длину ласт?
- csv
- Паркет
- Стрелка с файлом API (
OSFile (...)
) - Стрелка как API карты памяти (
memory_map (...)
) с пропущенными значениями / NaN - Стрелка как API карты памяти (
memory_map (.
) без пропущенных значений..)
При измерении времени для каждой из трех функций возникают следующие результаты:
Сравнение производительности: время, необходимое для чтения столбца и вычисления среднего значенияНеудивительно, что csv — самый медленный вариант. Требуется прочитать 200 МБ, проанализировать текст, отбросить все столбцы, кроме длины флиппера, а затем вычислить среднее значение.
Parquet в ~ 60 раз быстрее, так как нет необходимости анализировать весь файл — считываются только необходимые столбцы.
Arrow с пропущенными значениями примерно в 3 раза быстрее, чем Parquet, и почти в ~ 200 раз быстрее, чем CSV.Как и Parquet, Arrow может ограничиться чтением только указанного столбца. Что делает его быстрее, так это то, что нет необходимости распаковывать столбец.
Обратите внимание, что разница между чтением файлов Arrow с отображением в память с нулевым копированием и без него означала еще ~ 3-кратное повышение производительности (то есть нулевое копирование в целом примерно в 600 раз быстрее, чем csv, и ~ в 9 раз быстрее, чем Parquet).
Что удивительно: Arrow с файловым API работает даже медленнее, чем Parquet. В чем дело?
Потребление памяти
Чтобы ответить на этот вопрос, давайте посмотрим на потребление памяти.Сколько оперативной памяти потребляет каждый файл, если мы читаем один столбец?
Вот результаты:
Сравнение производительности: Память, потребляемая для чтения столбцаСамое примечательное: Стрелка с файловым API занимает 189 МБ — это почти весь размер файла (даже если мы читаем только один столбец ?!). Ответ содержится в документации:
«[…] OSFile выделяет новую память при каждом чтении, как объекты файлов Python». [3]
При использовании OSFile
весь файл сначала считывался в память.Теперь понятно, почему эта операция была медленнее, чем Parquet, и потребляла больше всего памяти!
Однако, используя функцию отображения памяти и заполненные значения NaN, DataFrame pandas был создан непосредственно поверх сохраненного файла Arrow. Без копирования: 0 МБ ОЗУ! Неудивительно, что это был самый быстрый вариант.
Вы можете найти весь Jupyter Notebook здесь 📝
Мне есть что узнать о Arrow. На данный момент я узнал следующее: нельзя есть пирог и есть его.Существует компромисс между [7]:
- Оптимизировать для дискового пространства / длительного хранения на диске → Parquet
- Оптимизировать для обмена данными и быстрого поиска → Arrow
Прирост производительности как Parquet, так и Arrow составляет значимо по сравнению с csv. При сохранении Arrow на диск он занимает больше места, чем Parquet. Тем не менее, Arrow превосходит Parquet по скорости чтения — как по времени, так и по потреблению памяти. Представленные примеры (вычислить среднее значение одного столбца / столбца чтения) только поверхностны — я ожидаю, что с более сложными запросами и большими наборами данных стрелка будет сиять еще больше.
Пока Arrow считывается с функцией отображения памяти, скорость чтения невероятна. В лучшем случае в наборе данных нет пропущенных значений / NaN. Тогда PyArrow сможет творить чудеса и позволить вам работать с таблицей, почти не потребляя памяти.
Будущее действительно уже здесь — и это потрясающе!
Я буду продолжать писать о Python, данных и технологиях. Буду рад познакомиться с вами в Twitter ✨
Большое спасибо Yingying за подробный обзор и отличные отзывы! 👏
[1] Apache Arrow, целевая страница (2020), веб-сайт Apache Arrow
[2] Apache Arrow, FAQ (2020), веб-сайт Apache Arrow
[3] Apache Arrow, файлы с отображением на диске и в памяти ( 2020), Документация по привязкам Python для Apache Arrow
[4] J.LeDem, Apache Arrow и Apache Parquet: Почему нам нужны разные проекты для столбчатых данных, на диске и в памяти (2017), KDnuggets
[5] Дж. Ледем, План столбцов: Apache Parquet и Apache Arrow (2017), Дремио
[6] В. МакКинни, Apache Arrow и «10 вещей, которые я ненавижу в пандах» (2017), Блог
[7] У. МакКинни, Некоторые комментарии к блогу Дэниела Абади об Apache Arrow (2017), Блог
[8] Wikipedia, Run-length encoding (2020), Wikipedia
Краткое введение в PySpark.PySpark — отличный язык для… | Бен Вебер
Источник: Викимедиа (Венский технический музей)Учебник по PySpark для науки о данных
PySpark — отличный язык для выполнения масштабного исследовательского анализа данных, построения конвейеров машинного обучения и создания ETL для платформы данных. Если вы уже знакомы с Python и такими библиотеками, как Pandas, тогда PySpark — отличный язык для изучения, чтобы создавать более масштабируемые анализы и конвейеры. Цель этого поста — показать, как приступить к работе с PySpark и выполнять общие задачи.
Мы будем использовать Databricks для среды Spark и набор данных NHL от Kaggle в качестве источника данных для анализа. В этом посте показано, как читать и записывать данные в фреймы данных Spark, создавать преобразования и агрегаты этих фреймов, визуализировать результаты и выполнять линейную регрессию. Я также покажу, как масштабируемо смешивать обычный код Python с PySpark с помощью пользовательских функций Pandas. Чтобы упростить задачу, мы сосредоточимся на пакетной обработке и избежим некоторых сложностей, которые возникают при конвейерах потоковой передачи данных.
Полный блокнот для этого поста доступен на github.
Среда
Существует несколько различных вариантов запуска и запуска Spark:
- Самостоятельный хостинг: Вы можете настроить кластер самостоятельно, используя голые машины или виртуальные машины. Apache Ambari — полезный проект для этого варианта, но я не рекомендую его для быстрого начала работы.
- Облачные провайдеры: Большинство облачных провайдеров предлагают кластеры Spark: AWS имеет EMR, а GCP имеет DataProc.Раньше я писал о DataProc в блоге, и вы можете получить интерактивную среду быстрее, чем самостоятельный хостинг.
- Решения для поставщиков: Компании, включая Databricks и Cloudera, предоставляют решения Spark, что упрощает начало работы с Spark.
Используемое решение зависит от безопасности, стоимости и существующей инфраструктуры. Если вы пытаетесь приступить к работе со средой для обучения, я бы предложил использовать Databricks Community Edition.
Создание кластера PySpark в Databricks Community Edition.В этой среде легко приступить к работе с кластером Spark и средой ноутбука. Для этого руководства я создал кластер со средой выполнения Spark 2.4 и Python 3. Для запуска кода, приведенного в этом посте, вам понадобится по крайней мере Spark версии 2.3 для функциональности Pandas UDF.
Spark Dataframes
Ключевым типом данных, используемым в PySpark, является фрейм данных Spark. Этот объект можно рассматривать как таблицу, распределенную по кластеру, и ее функциональность аналогична фреймам данных в R и Pandas.Если вы хотите выполнять распределенные вычисления с использованием PySpark, вам необходимо выполнять операции с фреймами данных Spark, а не с другими типами данных Python.
Также можно использовать фреймы данных Pandas при использовании Spark, вызвав toPandas () для фрейма данных Spark, который возвращает объект pandas. Однако этой функции обычно следует избегать, за исключением работы с небольшими фреймами данных, поскольку она вытягивает весь объект в память на одном узле.
Одно из ключевых различий между фреймами данных Pandas и Spark — нетерпеливое и отложенное выполнение.В PySpark операции откладываются до тех пор, пока результат не понадобится в конвейере. Например, вы можете указать операции для загрузки набора данных из S3 и применения ряда преобразований к фрейму данных, но эти операции не будут применяться немедленно. Вместо этого записывается граф преобразований, и как только данные действительно необходимы, например, при записи результатов обратно в S3, преобразования применяются как единая конвейерная операция. Этот подход используется, чтобы избежать втягивания полного фрейма данных в память и обеспечивает более эффективную обработку в кластере машин.С фреймами данных Pandas все загружается в память, и каждая операция Pandas применяется немедленно.
В целом, рекомендуется избегать активных операций в Spark, если это возможно, поскольку это ограничивает объем вашего конвейера, который может быть эффективно распределен.
Чтение данных
Одним из первых шагов, которые необходимо изучить при работе со Spark, является загрузка набора данных в фрейм данных. После загрузки данных в фрейм данных вы можете применять преобразования, выполнять анализ и моделирование, создавать визуализации и сохранять результаты.В Python вы можете загружать файлы непосредственно из локальной файловой системы, используя Pandas:
import pandas as pd
pd.read_csv ("dataset.csv")
В PySpark загрузка CSV-файла немного сложнее. В распределенной среде нет локального хранилища, и поэтому для указания пути к файлу необходимо использовать распределенную файловую систему, такую как HDFS, файловое хранилище Databricks (DBFS) или S3.
Обычно при использовании PySpark я работаю с данными в S3. Многие базы данных предоставляют функцию выгрузки в S3, а также можно использовать консоль AWS для перемещения файлов с локального компьютера на S3.В этой публикации я буду использовать файловую систему Databricks (DBFS), которая предоставляет пути в виде / FileStore . Первый шаг — загрузить CSV-файл, который вы хотите обработать.
Следующим шагом является чтение файла CSV в фрейм данных Spark, как показано ниже. Этот фрагмент кода указывает путь к CSV-файлу и передает ряд аргументов функции read для обработки файла. Последний шаг отображает подмножество загруженного фрейма данных, подобное df.head ()
в пандах.
file_location = "/FileStore/tables/game_skater_stats.csv"df = spark.read.format (" csv "). Option (" inferSchema ",
True) .option (" header ", True) .load (file_location) display (df)
Я предпочитаю использовать формат parquet при работе со Spark, потому что это формат файла, который включает метаданные о типах данных столбца, предлагает сжатие файлов и является форматом файла, который разработан для хорошей работы со Spark. AVRO — еще один формат, который хорошо работает со Spark.В приведенном ниже фрагменте показано, как взять фрейм данных из предыдущего фрагмента и сохранить его как файл parquet в DBFS, а затем перезагрузить фрейм данных из сохраненного файла parquet.
df.write.save ('/ FileStore / parquet / game_skater_stats',
format = 'parquet') df = spark.read.load ("/ FileStore / parquet / game_skater_stats")
display (df)
Результат этого шага такая же, но последовательность выполнения существенно отличается. При чтении файлов CSV в фреймы данных Spark выполняет операцию в режиме ожидания, что означает, что все данные загружаются в память до того, как начнется выполнение следующего шага, в то время как при чтении файлов в паркетном формате используется ленивый подход.Как правило, при работе со Spark нужно избегать нетерпеливых операций, и если мне нужно обработать большие файлы CSV, я сначала преобразую набор данных в формат паркета, прежде чем выполнять остальную часть конвейера.
Часто вам нужно обработать большое количество файлов, например, сотни паркетных файлов, расположенных по определенному пути или каталогу в DBFS. С помощью Spark вы можете включить подстановочный знак в путь для обработки коллекции файлов. Например, вы можете загрузить пакет файлов паркета из S3 следующим образом:
df = spark.читать .load ("s3a: //my_bucket/game_skater_stats/*.parquet")
Этот подход полезен, если у вас есть отдельный файл паркета в день или если в вашем конвейере есть предыдущий шаг, который выводит сотни файлов паркета .
Если вы хотите читать данные из базы данных, такой как Redshift, рекомендуется сначала выгрузить данные в S3, а затем обрабатывать их с помощью Spark. В Redshift команду unload можно использовать для экспорта данных в S3 для обработки:
unload ('select * from data_to_process')
to 's3: // my_bucket / game_data'
iam_role 'arn: aws: iam :: 123 : роль / RedshiftExport ';
Существуют также библиотеки для баз данных, такие как искр-красное смещение, которые упрощают выполнение этого процесса.
Запись данных
Подобно чтению данных с помощью Spark, при использовании PySpark не рекомендуется записывать данные в локальное хранилище. Вместо этого вам следует использовать распределенную файловую систему, такую как S3 или HDFS. Если вы собираетесь обрабатывать результаты с помощью Spark, то паркет — хороший формат для сохранения фреймов данных. В приведенном ниже фрагменте показано, как сохранить фрейм данных в DBFS и S3 как паркет.
# DBFS (Паркет)
df.write.save ('/ FileStore / parquet / game_stats', format = 'parquet') # S3 (Паркет)
df.write.parquet ("s3a: // my_bucket / game_stats", mode = "overwrite")
При сохранении фрейма данных в формате паркета он часто разбивается на несколько файлов, как показано на изображении ниже.
Файлы паркета, созданные при сохранении фрейма данных в DBFS. Если вам нужны результаты в файле CSV, потребуется немного другой шаг вывода. Одно из основных отличий этого подхода заключается в том, что все данные будут отправлены в один узел перед выводом в CSV. Этот подход рекомендуется, когда вам нужно сохранить небольшой фрейм данных и обработать его в системе за пределами Spark. В приведенном ниже фрагменте показано, как сохранить фрейм данных в виде отдельного файла CSV в DBFS и S3.
# DBFS (CSV)
df.write.save ('/ FileStore / parquet / game_stats.csv', format = 'csv') # S3 (CSV)
df.coalesce (1) .write. format ("com.databricks.spark.csv")
.option ("header", "true") .save ("s3a: //my_bucket/game_sstats.csv")
Другой распространенный вывод для сценариев Spark — это NoSQL база данных, такая как Cassandra, DynamoDB или Couchbase. Это выходит за рамки данной публикации, но один подход, который я видел в прошлом, — это запись фрейма данных в S3, а затем запуск процесса загрузки, который сообщает системе NoSQL загрузить данные по указанному пути на S3.
Я также пропустил запись в источник потокового вывода, например Kafka или Kinesis. Эти системы удобнее использовать при использовании Spark Streaming.
Преобразование данных
С фреймами данных Spark можно выполнять множество различных типов операций, во многом аналогично широкому спектру операций, которые можно применять к фреймам данных Pandas. Один из способов выполнения операций с фреймами данных Spark — с помощью Spark SQL, который позволяет запрашивать фреймы данных, как если бы они были таблицами.В приведенном ниже фрагменте показано, как найти лучших игроков в наборе данных.
df.createOrReplaceTempView ("статистика") display (spark.sql ("" "
select player_id, sum (1) as games, sum (goal) as goal)
from stats
group by 1
order by 3 desc
limit 5
"" "))
Результатом является список идентификаторов игроков, количество появлений в играх и общее количество голов, забитых в этих играх. Если мы хотим отображать имена игроков, нам нужно будет загрузить дополнительный файл, сделать его доступным как временное представление, а затем присоединиться к нему с помощью Spark SQL.
Игроки, набравшие наибольшее количество очков в наборе данных. В приведенном выше фрагменте я использовал команду display для вывода образца набора данных, но также можно назначить результаты другому фрейму данных, который можно использовать на более поздних этапах конвейера. В приведенном ниже коде показано, как выполнить эти шаги, где первые результаты запроса назначаются новому фрейму данных, который затем назначается временному представлению и объединяется с коллекцией имен игроков.
top_players = spark.sql ("" "
выберите player_id, sum (1) как игры, сумму (голы) как голы
из статистики
group by 1
order by 3 desc
limit 5
" "") top_players.createOrReplaceTempView ("top_players")
names.createOrReplaceTempView ("names") display (spark.sql ("" "
выберите p.player_id, goal, _c1 as First, _c2 as Last
from top_players p
присоединяются имена n
на p .player_id = n._c0
порядок по 2 desc
"" "))
Результат этого процесса, показанный ниже, определяет Алекса Овечкина как самого результативного игрока в НХЛ на основе набора данных Kaggle.
Результат процесса объединения фреймов данных с помощью Spark SQL. Существуют операции фрейма данных Spark для общих задач, таких как добавление новых столбцов, удаление столбцов, выполнение объединений, а также вычисление совокупной и аналитической статистики, но при начале работы может быть проще выполнить эти операции с помощью Spark SQL. Кроме того, легче переносить код с Python на PySpark, если вы уже используете такие библиотеки, как PandaSQL или framequery, для управления фреймами данных Pandas с помощью SQL.
Как и большинство операций с фреймами данных Spark, операции Spark SQL выполняются в режиме отложенного выполнения, что означает, что шаги SQL не будут оцениваться до тех пор, пока не потребуется результат. Spark SQL предоставляет отличный способ покопаться в PySpark без предварительного изучения новой библиотеки для фреймов данных.
Если вы используете Databricks, вы также можете создавать визуализации прямо в записной книжке, без явного использования библиотек визуализации.Например, мы можем построить среднее количество голов за игру, используя приведенный ниже код Spark SQL.
display (spark.sql ("" "
select cast (substring (game_id, 1, 4) || '-'
|| substring (game_id, 5, 2) || '-01' as Date) как месяц)
, сумма (голов) / количество (отдельный game_id) как goal_per_goal
из stats
group by 1
order by 1
"" "))
Первоначальный результат, отображаемый в записной книжке Databricks, представляет собой таблицу результатов, но мы можем используйте функцию построения графика для преобразования вывода в различные визуализации, такие как гистограмма, показанная ниже. Этот подход не поддерживает все визуализации, которые могут понадобиться специалисту по данным, но он значительно упрощает выполнение исследовательского анализа данных в Spark. При необходимости мы можем использовать функцию toPandas () для создания фрейма данных Pandas на узле драйвера, что означает, что любая библиотека построения графиков Python может использоваться для визуализации результатов. Однако этот подход следует использовать только для небольших фреймов данных, поскольку все данные быстро загружаются в память на узле драйвера.
Я также посмотрел на среднее количество голов за бросок для игроков, забивших минимум 5 голов.
display (spark.sql ("" "
выберите cast (голы / выстрелы * 50 как int) /50.0 как Goals_per_shot
, sum (1) as Players
from (
select player_id, sum (shots) as shot, sum (голы) как голы
из статистики
сгруппируйте на 1
с голами> = 5
)
сгруппируйте на 1
порядок на 1
"" "))
Результаты этого преобразования показаны на диаграмме ниже. Большинство игроков, забивших хотя бы 5 голов, совершают броски от 4% до 12% времени.
MLlib
Одним из распространенных вариантов использования Python для специалистов по обработке данных является построение прогнозных моделей. Хотя scikit-learn отлично подходит для работы с пандами, он не масштабируется для больших наборов данных в распределенной среде (хотя есть способы распараллелить его со Spark). При построении прогнозных моделей с помощью PySpark и массивных наборов данных предпочтительной библиотекой является MLlib, поскольку она изначально работает с фреймами данных Spark.Не все алгоритмы из scikit-learn доступны в MLlib, но существует множество вариантов, охватывающих многие варианты использования.
Чтобы использовать один из контролируемых алгоритмов в MLib, вам необходимо настроить фрейм данных с вектором функций и меткой как скаляр. После подготовки вы можете использовать функцию fit для обучения модели. В приведенном ниже фрагменте показано, как объединить несколько столбцов в фрейме данных в один вектор с функциями с помощью VectorAssembler .Мы используем полученный фрейм данных для вызова функции подгонки и затем генерируем сводную статистику для модели.
# MLlib импортирует
из pyspark.ml.feature import VectorAssembler
from pyspark.ml.regression import LinearRegression # Создайте векторное представление для функций
Assembler = VectorAssembler (inputCols = ['shots', 'hits', 'ассисты',
'штрафные минуты', 'timeOnIce', 'takeaways'], outputCol = "features")
train_df = ассемблер.transform (df) # Подходит для модели линейной регрессии
lr = LinearRegression (featuresCol = 'features', labelCol = 'goal')
lr_model = lr.fit (train_df) # Выходная статистика
trainingSummary = lr_model.summary
print ("Coefficients:" + str (lr_model.coefficients))
print ("RMSE:% f"% trainingSummary.rootMeanSquaredError)
print ("R2:% f"% trainingSummary.r2)
Модель предсказывает, сколько целей игрок будет забивать в зависимости от количества бросков, времени в игре и других факторов.Однако производительность этой модели оставляет желать лучшего, она приводит к среднеквадратичной ошибке (RMSE) 0,375 и значению R-квадрата 0,125. Коэффициент с наибольшим значением был у столбца снимков , но это не дало достаточно сигнала для точности модели.
При построении конвейера машинного обучения с помощью PySpark необходимо учитывать ряд дополнительных шагов, включая наборы данных для обучения и тестирования, настройку гиперпараметров и хранение моделей. Приведенный выше фрагмент — это просто отправная точка для начала работы с MLlib.
Pandas UDFs
Одна из функций Spark, которую я использовал совсем недавно, — это определяемые пользователем функции (UDF) Pandas, которые позволяют выполнять распределенные вычисления с фреймами данных Pandas в среде Spark. Общий способ работы этих UDF заключается в том, что вы сначала разделяете фрейм данных Spark с помощью оператора groupby , и каждый раздел отправляется на рабочий узел и транслируется в фрейм данных Pandas, который передается в UDF. Затем UDF возвращает преобразованный фрейм данных Pandas, который объединяется со всеми другими разделами, а затем преобразуется обратно в фрейм данных Spark.Конечный результат действительно полезен: вы можете использовать библиотеки Python, которые требуют Pandas, но теперь могут масштабироваться до массивных наборов данных, если у вас есть хороший способ разбить фрейм данных. Пользовательские функции Pandas были представлены в Spark 2.3, и я расскажу о том, как мы используем эту функциональность в Zynga во время Spark Summit 2019.
— это обычная задача, которую я выполняю как специалист по данным. В приведенном ниже фрагменте кода показано, как выполнить подгонку кривой для описания взаимосвязи между количеством выстрелов и попаданий, которые игрок записывает в течение игры. Во фрагменте показано, как мы можем выполнить эту задачу для одного игрока, вызвав toPandas () для набора данных, отфильтрованного для одного игрока. Результатом этого шага являются два параметра (коэффициенты линейной регрессии), которые пытаются описать взаимосвязь между этими переменными.
# Пример данных для игрока
sample_pd = spark.sql ("" "
выберите * из статистики
, где player_id = 8471214
" "") .toPandas () # Импортировать библиотеки python
из scipy.optimize import leastsq
import numpy as np # Определите функцию, которая соответствует
def fit (params, x, y):
return (y - (params [0] + x * params [1])) # Подходит для кривой и покажите результаты
result = leastsq (fit, [1, 0],
args = (sample_pd.shots, sample_pd.hits))
print (result)
Если мы хотим вычислить эту кривую для каждого игрока и имеют большой набор данных, то вызов toPandas () завершится ошибкой из-за исключения нехватки памяти. Мы можем масштабировать эту операцию для всего набора данных, вызвав groupby () для player_id , а затем применив Pandas UDF, показанный ниже.Функция принимает в качестве входных данных фрейм данных Pandas, который описывает статистику игрового процесса одного игрока, и возвращает итоговый фрейм данных, который включает player_id и подогнанные коэффициенты. Каждый из сводных фреймов данных Pandas затем объединяется в фрейм данных Spark, который отображается в конце фрагмента кода. Еще одна часть настройки для использования Pandas UDF — определение схемы для результирующего фрейма данных, где схема описывает формат фрейма данных Spark, сгенерированного на этапе применения.
# Загрузить необходимые библиотеки
из pyspark.sql.functions import pandas_udf, PandasUDFType
из pyspark.sql.types import *
import pandas as pd # Создать схему для полученного фрейма данных
schema (StructType StructField ('ID', LongType (), True),
StructField ('p0', DoubleType (), True),
StructField ('p1', DoubleType (), True)]) # Определите UDF, ввод и выходными данными являются Pandas DF
@pandas_udf (schema, PandasUDFType.GROUPED_MAP)
def analysis_player (sample_pd): # вернуть пустые параметры в недостаточно данных
if (len (sample_pd.shots) <= 1):
return pd.DataFrame ({'ID': [sample_pd.player_id [0 ]],
'p0': [0], 'p1': [0]})# Выполнить аппроксимацию кривой
# Вернуть параметры как Pandas DF
result = leastsq (fit, [1, 0], args = (sample_pd.shots,
sample_pd .hits))
return pd.DataFrame ({'ID': [sample_pd.player_id [0]],
'p0': [result [0] [0]], 'p1': [result [0] [1]]}) # выполнить UDF и показать результаты
player_df = df.groupby ('player_id'). apply (analysis_player)
display (player_df)
Результат этого процесса показан ниже. Теперь у нас есть фрейм данных, который суммирует аппроксимацию кривой для каждого игрока, и мы можем выполнять эту операцию с большим набором данных. При работе с огромными наборами данных важно выбрать или сгенерировать ключ раздела, чтобы добиться хорошего компромисса между количеством и размером разделов данных.
Best Practices
Я рассмотрел некоторые общие задачи использования PySpark, но также хотел дать несколько советов, как упростить переход от Python к PySpark.Вот некоторые из лучших практик, которые я собрал на основе моего опыта переноса нескольких проектов между этими средами:
- Избегайте словарей, используйте фреймы данных: с использованием типов данных Python, таких как словари, означает, что код может быть невыполнимым в распределенный режим. Вместо использования ключей для индексации значений в словаре рассмотрите возможность добавления еще одного столбца в фрейм данных, который можно использовать в качестве фильтра.
- Используйте toPandas экономно: Вызов toPandas () приведет к загрузке всех данных в память на узле драйвера и предотвратит выполнение операций в распределенном режиме.Эту функцию можно использовать, когда данные уже были агрегированы, и вы хотите использовать знакомые инструменты построения графиков Python, но ее не следует использовать для больших фреймов данных.
- Избегайте циклов for: Если возможно, желательно переписать логику цикла for, используя шаблон groupby-apply для поддержки параллельного выполнения кода. Я заметил, что использование этого шаблона в Python также привело к очистке кода, который легче перевести в PySpark.
- Попробуйте свести к минимуму активные операции: Чтобы ваш конвейер был как можно более масштабируемым, рекомендуется избегать активных операций, которые загружают полные фреймы данных в память.Я заметил, что чтение в CSV — это активная операция, и моя работа заключается в том, чтобы сохранить фрейм данных как паркет, а затем перезагрузить его из паркета для создания более масштабируемых конвейеров.
- Используйте framequery / pandasql для упрощения портирования: Если вы работаете с чужим кодом Python, может быть сложно расшифровать, чего достигают некоторые операции Pandas. Если вы планируете переносить свой код с Python на PySpark, то использование библиотеки SQL для Pandas может упростить этот перевод.
Я обнаружил, что время, потраченное на написание кода в PySpark, также улучшилось благодаря навыкам программирования на Python.
Заключение
PySpark — отличный язык для изучения специалистами по данным, поскольку он обеспечивает масштабируемый анализ и конвейеры машинного обучения. Если вы уже знакомы с Python и Pandas, то большую часть ваших знаний можно применить к Spark. Я показал, как выполнять некоторые стандартные операции с PySpark для ускорения процесса обучения. Я также продемонстрировал некоторые недавние функции Spark с UDF Pandas, которые позволяют выполнять код Python в распределенном режиме.Есть отличные среды, которые позволяют легко приступить к работе с кластером Spark, что делает сейчас прекрасное время для изучения PySpark!
Пример кода: соединение и реляция данных
В этом примере используется набор данных, который был загружен с http://everypolitician. org/ на
Образец набора данных
Корзина
в Amazon Simple Storage Service (Amazon S3): s3: // awsglue-datasets / examples / us-законодатели / все
.Набор данных содержит данные в
Формат JSON о законодателях США и местах, которые они заняли в
Дом США
Представители и Сенат, и был немного изменен и стал доступен в
общедоступная корзина Amazon S3 для целей этого руководства.
Вы можете найти исходный код этого примера в файле join_and_relationalize.py
файл в образцах AWS Glue
репозиторий на сайте GitHub.
Используя эти данные, это руководство покажет вам, как сделать следующее:
Используйте сканер AWS Glue для классификации объектов, хранящихся в общедоступном Amazon S3.
ведро и спасти их схемы в каталог данных AWS Glue.
Изучите метаданные и схемы таблицы, полученные в результате обхода.
Напишите сценарий извлечения, передачи и загрузки (ETL) Python, который использует метаданные в то Каталог данных для выполнения следующих действий:
Объедините данные из разных исходных файлов в единую таблицу данных (которая является, денормализовать данные).
Отфильтруйте объединенную таблицу в отдельные таблицы по типу законодателя.
Запишите полученные данные в отдельные файлы Apache Parquet для последующего анализа.
Самый простой способ отладки скриптов Python или PySpark — создать конечную точку разработки.
и
запустите свой код там. Мы рекомендуем начать с настройки конечной точки разработки. работать
в.Для получения дополнительной информации см. Просмотр свойств конечной точки разработки.
Шаг 1: Сканирование данных в корзине Amazon S3
Войдите в Консоль управления AWS и откройте консоль AWS Glue по адресу https: // console.aws.amazon.com/glue/.
Следуя инструкциям в разделе Работа со сканерами в консоли AWS Glue, создайте новый сканер, который может сканировать
s3: // awsglue-datasets / examples / us-законодатели / весь набор данных
в базу данных с именемзаконодателей
в каталоге данных AWS Glue.Данные примера уже есть в общедоступном Amazon S3. ведро.
Запустите новый поисковый робот, а затем проверьте базу данных
законодателей
.Искатель создает следующие таблицы метаданных:
человек_json
memberships_json
организации_json
events_json
областей_json
стран_r_json
Это полунормализованный набор таблиц, содержащих законодателей и их истории.
Шаг 2: Добавить шаблонный скрипт в блокнот конечной точки разработки
Вставьте следующий шаблонный сценарий в записную книжку конечной точки разработки для импорта необходимые библиотеки AWS Glue и настройте один GlueContext :
import sys
от awsglue.преобразует импорт *
из awsglue.utils import getResolvedOptions
из pyspark.context импортировать SparkContext
из awsglue.context импортировать GlueContext
из задания импорта awsglue.
job
glueContext = GlueContext (SparkContext.getOrCreate ())
Шаг 3: Изучите схемы из данных в каталоге данных
Затем вы можете легко создать динамический кадр из каталога данных AWS Glue,
и изучите схемы данных.Для
Например, чтобы увидеть схему таблицы person_json
, добавьте в свой
ноутбук:
person = glueContext.create_dynamic_frame.from_catalog (
база данных = "законодатели",
table_name = "person_json")
print "Count:", person.count ()
person.printSchema ()
Вот результат печати вызовов:
Количество: 1961
корень
| - family_name: строка
| - имя: строка
| - ссылки: массив
| | - элемент: структура
| | | - примечание: строка
| | | - url: строка
| - пол: строка
| - изображение: строка
| - идентификаторы: массив
| | - элемент: структура
| | | - схема: строка
| | | - идентификатор: строка
| - other_names: массив
| | - элемент: структура
| | | - примечание: строка
| | | - имя: строка
| | | - lang: строка
| - sort_name: строка
| - изображения: массив
| | - элемент: структура
| | | - url: строка
| - given_name: строка
| - Birth_date: строка
| - id: строка
| - contact_details: массив
| | - элемент: структура
| | | - тип: строка
| | | - значение: строка
| - death_date: строка
Каждый человек в таблице является членом какого-либо органа Конгресса США.
Чтобы просмотреть схему таблицы memberships_json
, введите следующее:
memberships = glueContext.create_dynamic_frame.from_catalog (
база данных = "законодатели",
table_name = "memberships_json")
print "Count:", членство.счет ()
memberships.printSchema ()
Результат выглядит следующим образом:
Количество: 10439
корень
| - area_id: строка
| - on_behalf_of_id: строка
| - идентификатор_организации: строка
| - роль: строка
| - person_id: строка
| - законодательный_период_id: строка
| - start_date: строка
| - end_date: строка
организаций
— это партии и две палаты Конгресса, Сенат. и Палата представителей.Чтобы просмотреть схему таблицы
organization_json
,
введите следующее:
orgs = glueContext.create_dynamic_frame.from_catalog (
база данных = "законодатели",
table_name = "organization_json")
print "Count:", orgs.count ()
orgs.printSchema ()
Результат выглядит следующим образом:
Количество: 13
корень
| - классификация: строка
| - ссылки: массив
| | - элемент: структура
| | | - примечание: строка
| | | - url: строка
| - изображение: строка
| - идентификаторы: массив
| | - элемент: структура
| | | - схема: строка
| | | - идентификатор: строка
| - other_names: массив
| | - элемент: структура
| | | - lang: строка
| | | - примечание: строка
| | | - имя: строка
| - id: строка
| - имя: строка
| - места: int
| - тип: строка
Шаг 4: Фильтровать данные
Затем оставьте только те поля, которые вам нужны, и переименуйте id
в org_id
. Набор данных достаточно мал, чтобы вы могли просмотреть все.
toDF ()
преобразует DynamicFrame
в Apache Spark DataFrame
, чтобы вы могли применить преобразования, которые уже существуют в Apache Spark
SQL:
orgs = orgs.drop_fields (['другие_имя',
'идентификаторы']). rename_field (
'id', 'org_id'). rename_field (
'имя', 'org_name')
orgs.toDF (). показать ()
Ниже показан результат:
+ -------------- + -------------------- + ------------- ------- + -------------------- + ----- + ----------- + --- ----------------- +
| классификация | org_id | org_name | ссылки | места | тип | изображение |
+ -------------- + -------------------- + ------------- ------- + -------------------- + ----- + ----------- + --- ----------------- +
| вечеринка | party / al | AL | null | null | null | null |
| вечеринка | партия / демократ | Демократ | [[сайт, http: //.
.. | null | null | https: //upload.wi ... |
| партия | партия / демократия ... | Демократ-Либерал | [[сайт, http: // ... | null | null | null |
| законодательный орган | d56acebe-8fdc-47b ... | Палата представителей ... | null | 435 | нижняя палата | null |
| вечеринка | партия / независимая | Независимый | null | null | null | null |
| party | party / new_progres ... | Новый прогрессивный | [[сайт, http: // ... | null | null | https: // загрузить.с ... |
| вечеринка | party / popular_dem ... | Народный демократ | [[сайт, http: // ... | null | null | null |
| вечеринка | партийная / республиканская | Республиканский | [[сайт, http: // ... | null | null | https: //upload.wi ... |
| партия | партия / республиканская -... | республиканская-консервативная ... | [[сайт, http: // ... | null | null | null |
| вечеринка | партия / демократ | Демократ | [[сайт, http: // ... | null | null | https: //upload.wi ... |
| вечеринка | партия / независимая | Независимый | null | null | null | null |
| вечеринка | партийная / республиканская | Республиканский | [[сайт, http: //.
.. | null | null | https: //upload.wi ... |
| законодательный орган | 8fa6c3d2-71dc-478 ... | Сенат | null | 100 | верхняя палата | null |
+ -------------- + -------------------- + ------------- ------- + -------------------- + ----- + ----------- + --- ----------------- +
Введите следующее, чтобы просмотреть организаций
, которые появляются в членства
:
членство.select_fields (['идентификатор_организации']). toDF (). independent (). show ()
Ниже показан результат:
+ -------------------- +
| идентификатор_организации |
+ -------------------- +
| d56acebe-8fdc-47b .
.. |
| 8fa6c3d2-71dc-478 ... |
+ -------------------- +
Шаг 5: Поместите Все вместе
Теперь используйте AWS Glue, чтобы объединить эти реляционные таблицы и создать одну полную таблицу истории.
из
Законодатель членов
и их соответствующие организации
.
Сначала присоединитесь к
лицам
ичленства
наid
иperson_id
.Затем объедините результат с
организациями
наorg_id
иидентификатор_организации
.Затем удалите избыточные поля,
person_id
иorg_id
.
Вы можете выполнить все эти операции в одной (расширенной) строке кода:
l_history = Присоединяйтесь.применить (организации,
Join.apply (люди, членство, 'id', 'person_id'),
'org_id', 'organization_id'). drop_fields (['person_id', 'org_id'])
print "Count:", l_history.
count ()
l_history.printSchema ()
Результат выглядит следующим образом:
Количество: 10439
корень
| - роль: строка
| - места: int
| - org_name: строка
| - ссылки: массив
| | - элемент: структура
| | | - примечание: строка
| | | - url: строка
| - тип: строка
| - sort_name: строка
| - area_id: строка
| - изображения: массив
| | - элемент: структура
| | | - url: строка
| - on_behalf_of_id: строка
| - other_names: массив
| | - элемент: структура
| | | - примечание: строка
| | | - имя: строка
| | | - lang: строка
| - contact_details: массив
| | - элемент: структура
| | | - тип: строка
| | | - значение: строка
| - имя: строка
| - Birth_date: строка
| - идентификатор_организации: строка
| - пол: строка
| - классификация: строка
| - death_date: строка
| - законодательный_период_id: строка
| - идентификаторы: массив
| | - элемент: структура
| | | - схема: строка
| | | - идентификатор: строка
| - изображение: строка
| - given_name: строка
| - family_name: строка
| - id: строка
| - start_date: строка
| - end_date: строка
Теперь у вас есть итоговая таблица, которую вы можете использовать для анализа. Вы можете записать это в
а
компактный, эффективный формат для аналитики, а именно Parquet, который позволяет запускать SQL
в AWS Glue, Amazon Athena или Amazon Redshift Spectrum.
Следующий вызов записывает таблицу из нескольких файлов в поддержка быстрого параллельного чтения при дальнейшем анализе:
glueContext.write_dynamic_frame.from_options (frame = l_history,
connection_type = "s3",
connection_options = {"путь": "s3: // цель-образца-клея / каталог-вывода / законодательная_история"},
format = "паркет")
Чтобы поместить все данные истории в один файл, вы должны преобразовать его во фрейм данных, переразбейте его и запишите:
s_history = l_history.
toDF (). repartition (1)
s_history.write.parquet ('s3: // glue-sample-target / output-dir / законодательный_сингл')
Или, если вы хотите разделить его на Сенат и Палату представителей:
l_history.toDF () .write.parquet ('s3: // glue-sample-target / output-dir / законодатель_часть',
partitionBy = ['org_name'])
Шаг 6: Запись данные в реляционные базы данных
AWS Glue позволяет легко записывать данные в реляционные базы данных, такие как Amazon Redshift,
даже с
полуструктурированные данные. Он предлагает преобразование
в реляционную форму
, которое сглаживает DynamicFrames
независимо от того, насколько сложными могут быть объекты в кадре.
Использование l_history
DynamicFrame
в этом примере передайте имя корневой таблицы
( hist_root
) и временный рабочий путь к реляционализировать
.Эта
возвращает DynamicFrameCollection
. Затем вы можете перечислить имена DynamicFrames
в этой коллекции:
dfc = l_history.relationalize ("hist_root", "s3: // glue-sample-target / temp-dir /")
dfc.
keys ()
Ниже приведен результат вызова ключей
:
[u'hist_root ', u'hist_root_contact_details', u'hist_root_links ',
u'hist_root_other_names ', u'hist_root_images', u'hist_root_identifiers ']
Relationalize
разбил таблицу истории на шесть новых таблиц: корневая таблица
который содержит запись для каждого объекта в DynamicFrame
и вспомогательные таблицы
для массивов.Обработка массивов в реляционных базах данных часто неоптимальна, особенно
так как
эти массивы становятся большими. Разделение массивов на разные таблицы делает запросы
идти
намного быстрее.
Затем посмотрите на разделение, проверив contact_details
:
l_history.select_fields ('contact_details'). printSchema ()
dfc.select ('hist_root_contact_details'). toDF (). where ("id = 10 or id = 75"). orderBy (['id', 'index']). show ()
Ниже приведены выходные данные вызова show
:
корень
| - contact_details: массив
| | - элемент: структура
| | | - тип: строка
| | | - значение: строка
+ --- + ----- + ------------------------ + -------------- ----------- +
| id | index | contact_details.val.type | contact_details.
val.value |
+ --- + ----- + ------------------------ + -------------- ----------- +
| 10 | 0 | факс | |
| 10 | 1 | | 202-225-1314 |
| 10 | 2 | телефон | |
| 10 | 3 | | 202-225-3772 |
| 10 | 4 | twitter | |
| 10 | 5 | | MikeRossUpdates |
| 75 | 0 | факс | |
| 75 | 1 | | 202-225-7856 |
| 75 | 2 | телефон | |
| 75 | 3 | | 202-225-2711 |
| 75 | 4 | twitter | |
| 75 | 5 | | SenCapito |
+ --- + ----- + ------------------------ + -------------- ----------- +
Поле contact_details
было массивом структур в исходном DynamicFrame
.Каждый элемент этих массивов представляет собой отдельную строку во вспомогательном
таблица, проиндексированная индексом
. id
— это внешний ключ в hist_root
таблица с ключом contact_details
:
dfc.
select ('hist_root'). toDF (). где (
«contact_details = 10 или contact_details = 75»).Выбрать(
['id', 'given_name', 'family_name', 'contact_details']). show ()
Это результат:
+ -------------------- + ---------- + ----------- + ----- ---------- +
| id | given_name | family_name | contact_details |
+ -------------------- + ---------- + ----------- + ----- ---------- +
| f4fc30ee-7b42-432 ... | Майк | Росс | 10 |
| e3c60f34-7d1b-4c0... | Шелли | Капитон | 75 |
+ -------------------- + ---------- + ----------- + ----- ---------- +
Обратите внимание, что в этих командах toDF ()
, а затем , где выражение
используются для фильтрации строк, которые вы хотите увидеть.
Итак, объединение таблицы hist_root
со вспомогательными таблицами позволяет вам выполнять
следующий:
У вас уже установлено соединение с именем redshift3
.Для информации о
о том, как создать собственное подключение, см. в разделе «Определение подключений в каталоге данных AWS Glue».
Затем запишите эту коллекцию в Amazon Redshift, прокрутив DynamicFrames
один за раз:
для df_name в dfc.
ключи ():
m_df = dfc.select (имя_дф)
print "Запись в таблицу Redshift:", df_name
glueContext.write_dynamic_frame.from_jdbc_conf (frame = m_df,
catalog_connection = "красное смещение3",
connection_options = {"dbtable": df_name, "database": "testdb"},
redshift_tmp_dir = "s3: // glue-sample-target / temp-dir /")
Свойство dbtable
— это имя таблицы JDBC.Для хранилищ данных JDBC, поддерживающих схемы
в базе данных укажите schema.table-name
. Если схема не указана, используется «общедоступная» схема по умолчанию.
Для получения дополнительной информации см. Типы соединений и параметры для ETL в
AWS Glue.
Вот как выглядят таблицы в Amazon Redshift.(Вы подключились к Amazon Redshift через psql.)
testdb = # \ d
Список отношений
схема | имя | тип | владелец
-------- + --------------------------- + ------- + ----- ------
общественный | hist_root | стол | test_user
общественный | hist_root_contact_details | стол | test_user
общественный | hist_root_identifiers | стол | test_user
общественный | hist_root_images | стол | test_user
общественный | hist_root_links | стол | test_user
общественный | hist_root_other_names | стол | test_user
(6 рядов)
testdb = # \ d hist_root_contact_details
Таблица "паблик".hist_root_contact_details "
Колонка | Тип | Модификаторы
--------------------------- + ---------------------- ---- + -----------
id | bigint |
индекс | целое |
contact_details.
val.type | различный характер (65535) |
contact_details.val.value | различный характер (65535) |
testdb = # \ d hist_root
Таблица "public.hist_root"
Колонка | Тип | Модификаторы
----------------------- + -------------------------- + -----------
роль | различный характер (65535) |
сиденья | целое |
org_name | различный характер (65535) |
ссылки | bigint |
тип | различный характер (65535) |
sort_name | различный характер (65535) |
area_id | различный характер (65535) |
изображения | bigint |
on_behalf_of_id | различный характер (65535) |
other_names | bigint |
дата рождения | различный характер (65535) |
имя | различный характер (65535) |
идентификатор_организации | различный характер (65535) |
пол | различный характер (65535) |
классификация | различный характер (65535) |
законодательный_период_id | различный характер (65535) |
идентификаторы | bigint |
given_name | различный характер (65535) |
изображение | различный характер (65535) |
family_name | различный характер (65535) |
id | различный характер (65535) |
death_date | различный характер (65535) |
start_date | различный характер (65535) |
contact_details | bigint |
end_date | различный характер (65535) |
Теперь вы можете запрашивать эти таблицы с помощью SQL в Amazon Redshift:
testdb = # выберите * from hist_root_contact_details, где id = 10 или id = 75, упорядочить по id, index;
Результат:
id | индекс | Контактная информация.
val.type | contact_details.val.value
--- + ------- + -------------------------- + ----------- ----------------
10 | 0 | факс | 202-224-6020
10 | 1 | телефон | 202-224-3744
10 | 2 | twitter | ЧакГрэссли
75 | 0 | факс | 202-224-4680
75 | 1 | телефон | 202-224-4642
75 | 2 | twitter | СенДжекРид
(6 рядов)
Заключение
В целом AWS Glue очень гибок.Это позволяет вам в несколько строк кода выполнить
какая
обычно на написание уходит дни. Вы можете найти все сценарии ETL от источника к цели
в
Файл Python join_and_relationalize.py
в примерах AWS Glue на GitHub.
Uber: выбор правильного формата файла HDFS для ваших заданий Apache Spark
В рамках наших усилий по улучшению взаимодействия с пользователем на нашей платформе члены нашей группы сбора данных карт используют специальное мобильное приложение для сбора изображений и связанных с ними метаданных для улучшения наших карт. Например, наша команда снимает изображения уличных знаков для повышения эффективности и качества данных наших карт, чтобы облегчить поездку как для гонщиков, так и для водителей-партнеров, а также фотографирует продукты питания, которые будут отображаться в Приложение Uber Eats. Затем мы обрабатываем изображения и метаданные с помощью серии заданий Apache Spark и сохраняем результаты в нашем экземпляре распределенной файловой системы Hadoop (HDFS).
Для одного из крупнейших проектов группы сбора данных Maps потребовалось получить и обработать более восьми миллиардов изображений.К изображениям необходимо было получить эффективный доступ для последующих заданий Apache Spark, а также произвольный доступ для операторов, ответственных за редактирование карт. Хотя выбор дизайна, который мы сделали для нашей архитектуры Apache Spark, потребовал от нас обработки миллиардов изображений, полученный шаблон также был применен к проектам со значительно меньшим масштабом, состоящим из тысяч изображений.
Apache Spark поддерживает несколько форматов файлов, которые позволяют хранить несколько записей в одном файле. У каждого формата файла есть свои преимущества и недостатки.
В этой статье мы описываем форматы файлов, которые команда по сбору данных Maps использует для обработки больших объемов изображений и метаданных, чтобы оптимизировать работу с ними для последующих потребителей. Мы надеемся, что вы найдете эти выводы полезными для ваших собственных нужд в области анализа данных.
Использование Apache Spark с HDFS
Изображения и метаданные собираются с помощью специального мобильного приложения, разработанного Uber. После сбора данных мобильное приложение загружает данные в облачное хранилище.Изображения и метаданные загружаются из облачного хранилища в центры обработки данных Uber, а затем обрабатываются:
- Ingest : Помещает необработанные данные в центр обработки данных, чтобы их можно было обрабатывать параллельно.
- Обработка / преобразование : серия шагов, которые распаковывают необработанные данные и выполняют обработку для преобразования данных в полезную информацию для последующих потребителей.
Для каждого типа вывода используются следующие форматы файлов.
- Полученные данные : файлы SequenceFiles обеспечивают эффективную запись для данных BLOB-объектов.
- Промежуточные данные : Avro предлагает расширенную поддержку схем и более эффективную запись, чем Parquet, особенно для данных BLOB-объектов.
- Окончательный результат : комбинация файлов Parquet, Avro и JSON
- Метаданные изображений : Parquet оптимизирован для эффективных запросов и фильтрации.
- Imagery : Avro лучше оптимизирован для двоичных данных, чем Parquet, и поддерживает произвольный доступ для эффективных соединений.
- Агрегированные метаданные : JSON эффективен для небольших количеств записей, распределенных по большому количеству файлов, и его легче отлаживать, чем двоичные форматы файлов.
Каждый формат файла имеет свои плюсы и минусы, и каждый тип вывода должен поддерживать уникальный набор сценариев использования. Для каждого типа вывода мы выбрали формат файла, который максимизирует плюсы и минимизирует минусы.В следующих разделах мы объясняем, почему каждый формат файла был выбран для каждого типа формата.
Полученные данные
Прием данных — это процесс, с помощью которого данные, записанные разработанным Uber приложением для мобильных телефонов, эффективно перемещаются в центр обработки данных для дальнейшей обработки. Ingest читает из внешнего источника и записывает данные в HDFS, чтобы файлы можно было эффективно обрабатывать с помощью заданий Spark. Хранение небольшого количества больших файлов предпочтительнее большого количества маленьких файлов в HDFS, поскольку оно потребляет меньше ресурсов памяти на NameNodes и повышает эффективность заданий Spark, ответственных за обработку файлов.(Если вы хотите узнать больше об этой теме, мы рекомендуем прочитать эту статью в блоге Cloudera Engineering).
Во время приема содержимое файлов не изменяется, поэтому дополнительная обработка и преобразования могут выполняться параллельно через Spark. Задания Spark, отвечающие за обработку и преобразования, читают данные целиком и практически не фильтруют. Поэтому используется простой формат файла, который обеспечивает оптимальную производительность записи и не имеет накладных расходов, связанных с форматами файлов, ориентированными на схему, такими как Apache Avro и Apache Parquet.
Каждый экземпляр загрузки записывает файлы в один файл последовательности HDFS, в результате чего получается несколько больших файлов, что оптимально для HDFS. SequenceFile — это плоский файл, состоящий из двоичных пар ключ / значение. API позволяет хранить данные либо в двоичном ключе, либо в другом типе данных, таком как строка или целое число. В случае загрузки ключ представляет собой строку, содержащую полный путь к файлу, а значение представляет собой двоичный массив, содержащий содержимое загруженного файла.
Промежуточные данные
После получения данных серия заданий Spark преобразуется и выполняет дополнительную обработку данных.Каждое задание Spark в серии записывает промежуточные данные. Промежуточные данные, созданные предыдущей задачей, чаще всего читаются целиком и не фильтруются ни по столбцам, ни по строкам. Для этого типа промежуточных данных мы обычно используем формат файла Avro.
Формат файла Spark по умолчанию — Parquet. Parquet имеет ряд преимуществ, которые повышают производительность запросов и фильтрации данных. Однако эти преимущества сопровождаются предварительной оплатой при записи файлов. Parquet — это формат файла на основе столбцов, что означает, что все значения для данного столбца во всех строках, хранящихся в физическом файле (также известном как блок), группируются вместе перед записью на диск.Таким образом, все записи должны быть сохранены и перегруппированы в памяти перед записью блока. Напротив, файл Avro — это формат файла на основе записей, который позволяет более эффективно передавать записи на диск. (На веб-сайте Parquet есть серия записанных презентаций, которые предоставляют более исчерпывающие объяснения столбчатых форматов файлов.)
Из-за меньших накладных расходов на запись файлы Avro обычно используются для хранения промежуточных данных, когда:
- Данные записываются один раз и читаются один раз.
- Считыватель не фильтрует данные.
- Считыватель считывает данные последовательно.
Конечный результат
Конечным выходом являются обработанные данные, к которым обращаются несколько нижестоящих потребителей. У каждого потребителя есть уникальные требования, которые часто решаются путем запроса и фильтрации данных. Например, потребитель может выполнить геопространственный запрос изображений определенного типа. Окончательный результат делится на три категории:
- Метаданные изображения : данные об изображении, например, место, из которого они были сделаны.
- Изображение : изображения, полученные датчиком.
- Агрегированные данные : данные высокого уровня о наборе изображений, такие как версия программного обеспечения, используемого для обработки изображений, или агрегированные показатели выходных данных.
Метаданные изображения
В отличие от промежуточных данных, метаданные изображений читаются несколько раз и часто фильтруются и запрашиваются. Данные хранятся в Parquet, потому что преимущества значительно перевешивают дополнительные накладные расходы на запись.Ниже приведены результаты двух тестов производительности, в которых было запрошено около пяти миллионов записей.
Первый запрос — это простой запрос с ограничивающей рамкой по широте и долготе изображения, который возвращает примерно 250 000 записей. С точки зрения нижележащего потребителя запрос Parquet выполняется почти в три раза быстрее. Однако реальное влияние оказывается на базовую инфраструктуру.
Наибольшее улучшение — это ввод-вывод, необходимый для запросов, где Parquet потребляет 7. 5 процентов ввода-вывода, требуемого для запроса Avro. Формат файла Parquet хранит статистику, которая значительно сокращает объем считываемых данных.
Ресурс | Авро | Паркет | Улучшение |
Время стены (сек) | 20,76 | 7,17 | 290% |
Время ядра (мин) | 24.80 | 1,28 | 1,938% |
Прочтений (МБ) | 24 678.4 | 1848,5 | 1,335% |
Второй запрос — это сравнение строк, которое возвращает примерно 40 000 записей. И снова запрос к файлам Parquet работал значительно лучше, чем к файлам Avro. Запрос Parquet выполняется в два раза быстрее и требует 1,5% операций ввода-вывода по сравнению с аналогичным запросом Avro.
Ресурс | Авро | Паркет | Улучшение |
Время стены (сек) | 18.![]() | 6,0 | 308% |
Время ядра (мин) | 1670,00 | 50,76 | 3 289% |
Прочтений (МБ) | 24 678,4 | 376,6 | 6,552% |
Изображения
Parquet не оптимален для хранения больших двоичных данных, таких как изображения, поскольку это ресурсоемкий процесс упорядочивания больших двоичных данных в столбчатом формате. С другой стороны, Avro неплохо работает для хранения изображений.Однако, как обсуждалось в предыдущем разделе, Avro не оптимален для запросов.
Для поддержки запросов в файлы Parquet метаданных изображений добавляются два столбца, которые служат внешним ключом к изображениям. Это позволяет клиентам запрашивать изображения через метаданные.
Чтобы понять, как реализована перекрестная ссылка, необходимо учесть две ключевые детали:
- Файл части : Spark подразделяет данные на разделы, и когда данные записываются в Avro, каждый раздел записывается в отдельный файл части.
- Смещение записи: Avro API поддерживает возможность получения смещения в файл, где хранится конкретная запись. Учитывая смещение, Avro API может эффективно искать местоположение файла и читать запись. Эта функция доступна через собственный API Avro, а не через API оболочки Spark для Avro.
Два столбца, добавленные к метаданным изображения, используемым в качестве перекрестной ссылки на изображение, — это имя файла детали, в котором хранится запись изображения, и смещение файла записи в файле детали.Поскольку API оболочки Spark для файлов Avro не раскрывает смещение записи, для записи изображений необходимо использовать собственный API Avro.
Изображения записываются на карте Spark. Реализация будет зависеть от версии Spark и от того, используются ли API DataFrame или Resilient Distributed Dataset, но концепция остается той же. Выполните метод для каждого раздела с помощью вызова карты Spark и используйте собственный API Avro для записи отдельного файла детали, содержащего все изображения, содержащиеся в разделе. Общие шаги следующие:
- Прочитать файл последовательности захвата.
- Сопоставьте каждый раздел полученного файла SequenceFile и передайте идентификатор раздела в функцию сопоставления. Для RDD вызовите rdd.mapPartitionsWithIndex (). Для DataFrame вы можете получить идентификатор раздела с помощью spark_partition_id (), сгруппировать по идентификатору раздела с помощью df.groupByKey (), а затем вызвать df.flatMapGroups ().
- В функции карты выполните следующие действия:
- Создайте стандартный Avro Writer (не Spark) и включите идентификатор раздела в имя файла.
- Перебирать каждую запись полученного файла SequenceFile и записывать записи в файл Avro.
- Вызовите DataFileWriter.sync () в Avro API. Это сбросит запись на диск и вернет смещение записи.
- Передайте как имя файла, так и смещение записи через возвращаемое значение функции карты вместе с любыми дополнительными метаданными, которые вы хотите извлечь из изображения.
- Сохраните полученный DataFrame или RDD в формате Parquet.
Результат — Avro и сопутствующий файл Parquet.Файл Avro содержит изображения, а сопутствующий файл Parquet содержит путь к файлу Avro и смещение записи для эффективного поиска файла Avro для данной записи изображения. Общий шаблон для запроса и последующего чтения записей изображений:
- Запросить файлы Parquet.
- Включите в результаты путь к файлу и смещение.
- Необязательно перераспределите результаты, чтобы настроить степень параллелизма для чтения записей изображений.
- Сопоставьте каждый раздел результатов запроса.
- В функции карты выполните следующие действия:
- Создайте стандартный считыватель Avro для файла детали Avro, который содержит запись изображения.
- Вызовите DataFileReader.seek (long), чтобы прочитать запись изображения по указанному смещению.
Сводные данные
В дополнение к метаданным для данного изображения нам полезно хранить агрегированные метаданные обо всем наборе изображений, хранящихся в данной паре файлов Avro и Parquet. В случае использования Uber примеры агрегированных метаданных включают:
- Версия конвейера, используемая для обработки заданного набора изображений.Если в конвейере обнаруживается ошибка, эти данные используются для эффективной идентификации изображений, которые необходимо повторно обработать.
- Географическая область, в которой были собраны изображения. Это позволяет клиентам определять, какие пары файлов Avro и Parquet включить в геопространственный поиск.
Агрегированные данные хранятся в файлах JSON по следующим причинам:
- Возможность отладки : поскольку файлы JSON представляют собой форматированный текст и обычно содержат небольшое количество записей, их можно легко отобразить без кода или специальных инструментов.
- «Достаточно эффективно» Считывает : во многих случаях файл JSON будет содержать одну запись для данной пары Avro и Parquet. И Parquet, и Avro имеют накладные расходы, потому что оба формата файлов содержат информацию заголовка.
JSON не имеет этих накладных расходов из-за отсутствия в форматах информации заголовка.
- Ссылочная целостность : Альтернативой может быть хранение агрегированных записей в базе данных. Однако если файлы JSON, Avro и Parquet для данного набора изображений хранятся в единственном родительском каталоге, то изображения, метаданные изображений и агрегированные метаданные можно заархивировать, переместив родительский каталог с помощью одной атомарной операции HDFS.
Основные выводы
Формат файла по умолчанию для Spark — Parquet, но, как мы обсуждали выше, есть варианты использования, где лучше подходят другие форматы, в том числе:
- SequenceFiles: двоичная пара ключ / значение, которая является хорошим выбором для хранилища больших двоичных объектов, когда накладные расходы на поддержку расширенной схемы не требуются
- Parquet: поддерживает эффективные запросы, строго типизированные схемы и имеет ряд других преимуществ, не описанных в этой статье.
- Avro: идеально подходит для больших двоичных данных или когда последующие потребители читают записи целиком, а также поддерживает произвольный доступ к записям.Предоставляет возможность определять строго типизированную схему.
- JSON: идеально, когда записи хранятся в нескольких небольших файлах
Выбрав оптимальный формат файла HDFS для заданий Spark, вы можете гарантировать, что они будут эффективно использовать ресурсы центра обработки данных и наилучшим образом удовлетворить потребности последующих потребителей.
Если вас интересует работа над крупномасштабными задачами обработки данных или технологиями компьютерного зрения, рассмотрите возможность подачи заявки на вакансию в нашей инженерной группе в Боулдере, штат Колорадо!
.