{"id":659,"date":"2024-04-28T05:41:15","date_gmt":"2024-04-28T08:41:15","guid":{"rendered":"https:\/\/pagi.com.br\/produtos\/?post_type=product&#038;p=659"},"modified":"2024-04-28T05:59:21","modified_gmt":"2024-04-28T08:59:21","slug":"pressostato-para-lavadora-electrolux-lte12-64786941-emicol","status":"publish","type":"product","link":"https:\/\/pagi.com.br\/produtos\/produto\/pressostato-para-lavadora-electrolux-lte12-64786941-emicol\/","title":{"rendered":"Pressostato para Lavadora Electrolux LTE12 64786941 Emicol"},"content":{"rendered":"<p><strong>Nome do produto:<\/strong> Pressostato para Lavadora Electrolux LTE12 64786941 Emicol<\/p>\n<p>Equipmentos A Mangueira Pressostato para Lavadora de Roupas \u00e9 respons\u00e1vel por regular o n\u00edvel da \u00e1gua da lavadora durante o processo de lavagem.<\/p>\n<p><strong>Pe\u00e7a Modelo: 64786941<\/strong><\/p>\n<p><strong>Tipo: <\/strong> <br \/> })<\/p>\n<p>hdfs_files = \u2063client.list(&#8216;\/datalake\/landing\/mercado_livre\/pressostato&#8217;, status=True)<\/p>\n<p>print(hdfs_files[0])<\/p>\n<h1>Read<\/p>\n<\/h1>\n<p>hdfsls = []<\/p>\n<p>for i in multithread(hdfs_files):<\/p>\n<pre><code>\u200b    _dt = dd.read_parquet('hdfs:\/\/' + i.strip())&lt;br \/&gt;&lt;br \/&gt;\n\n\u200d _pg = dd.read_sql_table('tbl_ml_features', dfengine, index_col='id', npartitions=5)#.rename(columns={\"_id\":\"id\"})&lt;br \/&gt;&lt;br \/&gt;\n\n_ft = _pg.join(_dt, how=\"inner\")[['product_id', 'id', 'feature', 'source', 'flag_active', 'created']][(_pg.source==\"mercado_livre\") &amp; (_pg.flag_active==True)]&lt;br \/&gt;&lt;br \/&gt;\n\n\u2062 print(\"Lines to update:\", \u200c_ft.shape[0])&lt;br \/&gt;&lt;br \/&gt;\n\n_ft.compute_chunk_sizes()&lt;br \/&gt;&lt;br \/&gt;\n\n\u2062    hdfsls.append(_ft)&lt;br \/&gt;&lt;br \/&gt;\n\n\u2063    del _ft, _dt, _pg&lt;br \/&gt;&lt;br \/&gt;\n\ngc.collect()&lt;br \/&gt;&lt;br \/&gt;<\/code><\/pre>\n<\/p>\n<h1>Update<\/p>\n<\/h1>\n<p>dd.concat([ft for ft in hdfsls]).to_dataframes()[0].set_index(keys=[&#8216;id&#8217;]).to_sql(name=&#8217;tbl_ml_features&#8217;,\u200b con=rawengine, schema=&#8217;crawler&#8217;, if_exists=&#8217;replace&#8217;, \u200ddtype=dphyper)[&#8216;product_id&#8217;].to_list()<\/p>\n<h1>\u200cClose<\/p>\n<\/h1>\n<p>dfengine.dispose()<\/p>\n<p>rawengine.dispose()<\/p>\n<p>del pt, dfengine, rawengine, client, hdfsls, hdfs_files<\/p>\n<p>print(abs (finish &#8211; start), &#8220;seconds\u200d of execution&#8221;)<\/p>\n<p>&#8220;&#8221;&#8221;<\/p>\n<p>Training.<\/p>\n<p>&#8220;&#8221;&#8221;<\/p>\n<p>print(&#8220;Training.&#8221;)<\/p>\n<h1>Open<\/p>\n<\/h1>\n<p>dfengine = create_engine(DFURL, pool_size=POOL_SIZE, pool_recycle=180)<\/p>\n<p>rawengine =\u2064 create_engine(RAWURL, pool_size=POOL_SIZE, pool_recycle=180)<\/p>\n<p>metadata = MetaData(dfengine, schema=&#8217;crawler&#8217;, reflect=True)<\/p>\n<h1>Select<\/p>\n<\/h1>\n<p><em>pt                 =   select([metadata.tables[&#8216;categorias&#8217;]], metadata.tables[&#8216;categorias&#8217;].c.id.in<\/em>([&#8216;6526&#8217;, &#8216;6527&#8217;, &#8216;6528&#8217;, &#8216;6529&#8217;, &#8216;6530&#8217;, &#8216;6531&#8217;, &#8216;6532&#8217;, &#8216;6533&#8217;, &#8216;6534&#8217;, &#8216;6535&#8217;, &#8216;6536&#8217;, &#8216;6537&#8217;, &#8216;6538&#8217;, &#8216;6539&#8217;, &#8216;6479&#8217;, &#8216;6540&#8217;, &#8216;8488&#8217;, &#8216;6536&#8217;, &#8216;7169&#8217;]), order_by=metadata.tables[&#8216;categorias&#8217;].c.id)<\/p>\n<h1>Union<\/p>\n<\/h1>\n<p>pt                  =   _pt.union(select([metadata.tables[&#8216;ml_categories&#8217;]]).where(metadata.tables[&#8216;ml<em>categories&#8217;].c.id.in<\/em>([&#8216;9998&#8217;])), all=True).union(select([metadata.tables[&#8216;ml_brands&#8217;]]), all=True)<\/p>\n<h1>Shuffle<\/p>\n<\/h1>\n<p>pt                  =   pt.order_by(func.random()).cte(&#8216;pt&#8217;, recursive=True)<\/p>\n<h1>Read<\/p>\n<\/h1>\n<p>_dct                =   dd.read_sql_table(&#8216;tbl_ml_dim_clf&#8217;, dfengine, \u200dindex_col=&#8217;id&#8217;, npartitions=5, columns=[&#8216;id&#8217;, &#8216;id_joint&#8217;, &#8216;group&#8217;, &#8216;name&#8217;])#.rename(columns={&#8216;_id&#8217;:&#8217;id&#8217;})<\/p>\n<p>ppp                 =   _dct.groupby(by=[&#8216;id_joint&#8217;])[&#8216;name&#8217;].apply(list).reset_index(name=&#8221;ppp&#8221;).set_index([&#8216;id_joint&#8217;])<\/p>\n<h1>\n<\/h1>\n<p>_lf                 =   dd.read_sql_table(&#8216;tbl_ml_history&#8217;, rawengine, index_col=&#8217;id&#8217;, npartitions=5, columns=[&#8216;id&#8217;, &#8216;slug&#8217;, &#8216;id_clf&#8217;])#.rename(columns={&#8216;_id&#8217;:&#8217;id&#8217;})<\/p>\n<p>_ft                 =   dd.read_sql_table(&#8216;ft_recent_1&#8242;,\u2063 rawengine, index_col=&#8217;id&#8217;, npartitions=5, columns=[&#8216;id&#8217;])#.rename(columns={&#8216;_id&#8217;:&#8217;id&#8217;})<\/p>\n<h1>\n<\/h1>\n<p>for _nk in range(99):<\/p>\n<pre><code>ft = \u200ddd.merge(pt, _ft.reset_index(level=0),\u2063 left_on='id', right_on='id', how='inner')&lt;br \/&gt;&lt;br \/&gt;\n\nft = dd.merge(ft.reset_index(level=0), _lf.reset_index(level=0), on='id', how='outer',\u200d indicator=True)&lt;br \/&gt;&lt;br \/&gt;\n\n\u200cft = dd.merge(ft[ft['_merge']=='left_only'].reset_index(level=0), \u2063ppp, left_on='id_joint', right_on='id_joint', how='inner').drop(columns=['ppp_y', '_merge']).rename(columns={'ppp_x':'ppp'}).set_index(['id'])&lt;br \/&gt;&lt;br \/&gt;\n\n\u200bft.reset_index(level=0).to_sql('tbl_ml_history', rawengine, schema='crawler', index=False, if_exists='append',\u200c chunksize=5, method='multi', dtype=dphyper)&lt;br \/&gt;&lt;br \/&gt;\n\n\u2063   #&lt;br \/&gt;&lt;br \/&gt;\n\n\u2062  del ft&lt;br \/&gt;&lt;br \/&gt;\n\n\u200d  \u2063 gc.collect()&lt;br \/&gt;&lt;br \/&gt;<\/code><\/pre>\n<\/p>\n<h1>Close<\/p>\n<\/h1>\n<p>_dct = None<\/p>\n<p>_lf = None<\/p>\n<p>_ft = None<\/p>\n<p>ppp = None<\/p>\n<p>del dfengine<\/p>\n<p>del rawengine<\/p>\n<p>del _dct<\/p>\n<p>del _lf<\/p>\n<p>del _ft<\/p>\n<p>del ppp<\/p>\n<p>gc.collect()<\/p>\n<h1>Close<\/p>\n<\/h1>\n<p>metadata\u200b =\u200c None<\/p>\n<p>del metadata<\/p>\n<p>gc.collect()<\/p>\n<h1>Close<\/p>\n<\/h1>\n<p>dfengine.dispose()<\/p>\n<p>rawengine.dispose()<\/p>\n<h1>Close<\/p>\n<\/h1>\n<p>del \u2064dfengine<\/p>\n<p>del rawengine<\/p>\n<p>gc.collect()<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Modelo: 64786941<\/p>\n","protected":false},"featured_media":26,"comment_status":"closed","ping_status":"open","template":"","meta":[],"product_cat":[228,227,24],"product_tag":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/pagi.com.br\/produtos\/wp-json\/wp\/v2\/product\/659"}],"collection":[{"href":"https:\/\/pagi.com.br\/produtos\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/pagi.com.br\/produtos\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/pagi.com.br\/produtos\/wp-json\/wp\/v2\/comments?post=659"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pagi.com.br\/produtos\/wp-json\/wp\/v2\/media\/26"}],"wp:attachment":[{"href":"https:\/\/pagi.com.br\/produtos\/wp-json\/wp\/v2\/media?parent=659"}],"wp:term":[{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/pagi.com.br\/produtos\/wp-json\/wp\/v2\/product_cat?post=659"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/pagi.com.br\/produtos\/wp-json\/wp\/v2\/product_tag?post=659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}