{"id":233,"date":"2009-06-23T18:46:34","date_gmt":"2009-06-23T23:46:34","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/hadoop\/?p=233"},"modified":"2009-06-23T18:46:34","modified_gmt":"2009-06-23T23:46:34","slug":"hadoop-input-formats","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/hadoop\/2009\/06\/23\/hadoop-input-formats\/","title":{"rendered":"Hadoop input formats"},"content":{"rendered":"<p>A m\u00e1s del <code>TextInputFormat<\/code> (cada registro es una l\u00ednea de un archivo de texto) usado por defecto, Hadoop soporta varios formatos de entrada para los mappers. Por ejemplo,<\/p>\n<ul>\n<li><code>WholeFileInputFormat<\/code>: Cada registro es un archivo completo. No utiliza keys (<code>NullWritable<\/code>). Los valores son instancias de <code>BytesWritable<\/code>. Usando esta clase como formato de entrada para los mappers, nos permite asegurar que un mapper reciba el contenido de un archivo completo (a manera de arreglo de bytes). En el libro <a href=\"http:\/\/www.hadoopbook.com\/\">Hadoop: The definitive guide<\/a> (p\u00e1gs. 193-196) hay una explicaci\u00f3n detallada de c\u00f3mo usar esta clase.<\/li>\n<li><code>KeyValueTextInputFormat<\/code>: Cada registro es una l\u00ednea de texto. Utilizado para leer de archivos de texto en los que cada l\u00ednea representa una tupla &lt;key, value&gt; (por ejemplo, los archivos generados por los reducers que emiten <code>TextOutputFormat<\/code>). El delimitador entre la clave y el valor es configurable (TAB por defecto).<\/li>\n<li><code>StreamInputFormat<\/code> en combinaci\u00f3n con <code>StreamXmlRecordReader<\/code>: Cada registro es un \"registro\" XML. Los tags de inicio y fin del \"registro\" XML son configurables.<\/li>\n<li><code>DBInputFormat<\/code>: permite leer datos de una base de datos relacional, v\u00eda JDBC. Hay una entrada detallando el uso de esta clase en el <a href=\"http:\/\/www.cloudera.com\/blog\/2009\/03\/06\/database-access-with-hadoop\/\">blog de Cloudera<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A m\u00e1s del TextInputFormat (cada registro es una l\u00ednea de un archivo de texto) usado por defecto, Hadoop soporta varios formatos de entrada para los mappers. Por ejemplo, WholeFileInputFormat: Cada registro es un archivo completo. No utiliza keys (NullWritable). Los valores son instancias de BytesWritable. Usando esta clase como formato de entrada para los mappers, [&hellip;]<\/p>\n","protected":false},"author":1510,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[945,6],"tags":[2860,8554,8553],"class_list":["post-233","post","type-post","status-publish","format-standard","hentry","category-desarrollo","category-espol","tag-hadoop","tag-inputformat","tag-mapper"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/posts\/233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/users\/1510"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/comments?post=233"}],"version-history":[{"count":6,"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/posts\/233\/revisions"}],"predecessor-version":[{"id":239,"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/posts\/233\/revisions\/239"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/media?parent=233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/categories?post=233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/hadoop\/wp-json\/wp\/v2\/tags?post=233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}