{"id":2220,"date":"2016-04-19T15:00:00","date_gmt":"2016-04-19T15:00:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2220"},"modified":"2023-06-23T05:10:08","modified_gmt":"2023-06-23T12:10:08","slug":"use-couchbase-and-rxjava-to-make-java-read-csv-files","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","title":{"rendered":"Utiliza Couchbase y RxJava para que Java lea archivos CSV"},"content":{"rendered":"<p>RxJava es una herramienta impresionante para la programaci\u00f3n reactiva que tambi\u00e9n es \u00fatil como lector CSV de Java.<\/p>\n<p>En caso de que nunca haya utilizado o incluso o\u00eddo hablar de RxJava, es una forma de programar con flujos de datos as\u00edncronos. Tambi\u00e9n es una programaci\u00f3n basada en eventos donde puedes observar o escuchar datos de flujo y hacer algo cuando dicho flujo es descubierto. Los flujos de datos pueden ser cualquier cosa, desde variables a estructuras de datos.<\/p>\n<p>Para este ejemplo, digamos que una l\u00ednea de datos CSV es un flujo de datos. Muchos desarrolladores se encuentran con la necesidad de cargar datos CSV en su base de datos m\u00e1s a menudo de lo que esperan. En la mayor\u00eda de los escenarios no se puede simplemente leer las l\u00edneas de un archivo CSV y soltarlo en una base de datos. En este ejemplo, vamos a utilizar RxJava para suscribirnos a un flujo de datos y transformarlo en Java para leer los archivos CSV que se guardar\u00e1n en Couchbase.<\/p>\n<h2>Requisitos<\/h2>\n<p>No hay demasiados requisitos para poner en marcha este proyecto. Como m\u00ednimo, necesitar\u00e1s lo siguiente:<\/p>\n<ul>\n<li>JDK 1.8+<\/li>\n<li>Apache Maven 3.3+<\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/nosql-databases\/couchbase-server\/\">Servidor Couchbase<\/a> 4.1+<\/li>\n<\/ul>\n<p>Todo el desarrollo y el trabajo se llevar\u00e1 a cabo con el JDK 1.8 y Maven, y esto incluye la ejecuci\u00f3n de la aplicaci\u00f3n.<\/p>\n<h2>Comprender el conjunto de datos y el modelo de datos<\/h2>\n<p>Una gran manera de mojarse los pies cuando se trata de RxJava es conseguir un conjunto de datos de muestra para jugar. Para simplificar, nos inventaremos nuestro propio archivo de valores separados por comas (CSV), pero si quieres algo m\u00e1s extravagante, puedes visitar el sitio web de ciencia de datos, <a href=\"https:\/\/www.kaggle.com\/\">Kaggle<\/a>.<\/p>\n<p>Supongamos que nuestro sencillo conjunto de datos CSV tiene las siguientes columnas por fila:<\/p>\n<ol>\n<li>id<\/li>\n<li>nombre<\/li>\n<li>apellido<\/li>\n<li>twitter<\/li>\n<\/ol>\n<p>Desde una perspectiva de consulta y an\u00e1lisis, trabajar con los datos en formato CSV es casi imposible. En su lugar, estos datos van a ser almacenados como datos NoSQL para que puedan ser procesados posteriormente. No vamos a entrar en el c\u00e1lculo de n\u00fameros y consultas aqu\u00ed, pero vendr\u00e1 en un futuro art\u00edculo. En este momento s\u00f3lo queremos ponerlo en formato NoSQL.<\/p>\n<p>Cuando se cargue en Couchbase, cada fila del CSV tendr\u00e1 un aspecto similar al siguiente:<\/p>\n<pre><code>\r\n{\r\n    \"id\": 1,\r\n    \"first_name\": \"Nic\",\r\n    \"last_name\": \"Raboy\",\r\n    \"twitter\": \"nraboy\"\r\n}\r\n<\/code><\/pre>\n<p>S\u00ed, el trozo de datos anterior es un documento JSON, que es lo que soporta Couchbase. Ahora que conocemos los objetivos de los datos, podemos empezar a cargar los datos CSV en Couchbase con RxJava.<\/p>\n<h2>Transformaci\u00f3n de los datos brutos y escritura en Couchbase<\/h2>\n<p>Para utilizar RxJava para cargar datos CSV a trav\u00e9s de una aplicaci\u00f3n Java, es necesario incluir algunas dependencias. Necesitamos incluir RxJava, OpenCSV, y el Couchbase Java SDK. Dado que estamos usando Maven, todas pueden ser incluidas a trav\u00e9s de Maven <strong>pom.xml<\/strong> archivo. Para incluir RxJava, incluya la siguiente dependencia en su archivo Maven:<\/p>\n<pre><code>\r\n\r\n    io.reactivex\r\n    rxjava\r\n    1.1.2\r\n\r\n<\/code><\/pre>\n<p>Dado que los datos en bruto estar\u00e1n en forma de CSV, podemos utilizar la biblioteca CSV de c\u00f3digo abierto para Java llamada OpenCSV. La dependencia de Maven para OpenCSV se puede a\u00f1adir as\u00ed:<\/p>\n<pre><code>\r\n\r\n    com.opencsv\r\n    opencsv\r\n    3.7\r\n\r\n<\/code><\/pre>\n<p>Por \u00faltimo, Java debe conectarse a <a href=\"https:\/\/developer.couchbase.com\/server\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Servidor Couchbase<\/a>. Esto puede hacerse a trav\u00e9s del <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/sdks\/intro.html\">SDK Java de Couchbase<\/a>. Para a\u00f1adir esta dependencia a su proyecto Maven, a\u00f1ada lo siguiente a su proyecto <strong>pom.xml<\/strong> file:<\/p>\n<pre><code>\r\n\r\n    com.couchbase.client\r\n    java-client\r\n    2.2.0\r\n\r\n<\/code><\/pre>\n<p>Todas las dependencias del proyecto est\u00e1n listas.<\/p>\n<p>Para cargar, pero no leer, el archivo CSV, crear\u00e1 un nuevo archivo <code>CSVReader<\/code> como sigue:<\/p>\n<pre><code>\r\nCSVReader reader = new CSVReader(new FileReader(\"PATH_TO_CSV_FILE\"));\r\n<\/code><\/pre>\n<p>Dado que estos datos se procesar\u00e1n finalmente en Couchbase, debemos conectarnos a nuestro servidor y abrir nuestro bucket.<\/p>\n<pre><code>\r\nBucket bucket = CouchbaseCluster.create(\"https:\/\/localhost:8091\").openBucket(\"default\", \"\");\r\n<\/code><\/pre>\n<p>Lo anterior asume que Couchbase se est\u00e1 ejecutando localmente y los datos se guardar\u00e1n en el bucket por defecto sin contrase\u00f1a.<\/p>\n<p>Para procesar el conjunto de datos CSV, se puede crear un RxJava Observable:<\/p>\n<pre><code>\r\nObservable\r\n    .from(reader)\r\n    .map(\r\n        csvRow -&gt; {\r\n            JsonObject object = JsonObject.create();\r\n            object\r\n                .put(\"first_name\", csvRow[1])\r\n                .put(\"last_name\", csvRow[2])\r\n                .put(\"twitter\", csvRow[3]);\r\n            return JsonDocument.create(csvRow[0], object);\r\n        }\r\n    )\r\n    .subscribe(document -&gt; bucket.upsert(document), error -&gt; System.out.println(error));\r\n<\/code><\/pre>\n<p>Para desglosar lo que ocurre en el Observable, se dan los siguientes pasos.<\/p>\n<p>En <code>CSVReader<\/code> crea un <code>Iterable<\/code>. El Observable utilizar\u00e1 el <code>Iterable<\/code> como fuente de datos utilizando el <code>.de<\/code> m\u00e9todo.<\/p>\n<p>Los datos le\u00eddos ser\u00e1n una matriz de cadenas, no algo que pueda almacenarse directamente en la base de datos. Si se utiliza la funci\u00f3n <code>.mapa<\/code> el array de cadenas puede transformarse en lo que decidamos. En este caso, el objetivo es mapear cada l\u00ednea del CSV a un documento Couchbase. Durante este proceso de mapeo podemos hacer m\u00e1s limpieza de datos. Por ejemplo, podr\u00edamos hacer algo como <code>csvRow[*].trim()<\/code> para eliminar los espacios en blanco iniciales y finales de cada columna CSV.<\/p>\n<p>Por \u00faltimo, cada l\u00ednea de lectura procesada debe guardarse en Couchbase. El sitio <code>.suscribirse<\/code> se suscribir\u00e1 a las notificaciones que emita el Observable, en este caso los datos manipulados.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Acabas de probar a cargar datos CSV sucios en Couchbase usando RxJava y el Couchbase Java SDK. Haciendo programaci\u00f3n reactiva puedes tomar acciones en cualquier flujo de datos que est\u00e9s observando. En nuestro escenario s\u00f3lo quer\u00edamos cargar un archivo CSV en Couchbase.<\/p>\n<p>Si tienes un conjunto de datos masivo, puedes llevar este tutorial al siguiente nivel utilizando Apache Spark. Escrib\u00ed un cargador CSV muy similar encontrado <a href=\"https:\/\/www.couchbase.com\/blog\/es\/load-csv-data-into-couchbase-using-apache-spark\/\">aqu\u00ed<\/a> que hace uso de Spark.<\/p>","protected":false},"excerpt":{"rendered":"<p>RxJava is an awesome tool for reactive programming that&#8217;s also useful as a Java CSV reader. In case you&#8217;ve never used or even heard of RxJava, it is a a way of programming with asynchronous data streams. It is also [&hellip;]<\/p>","protected":false},"author":63,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1818],"tags":[1614],"ppma_author":[9032],"class_list":["post-2220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-java","tag-csv"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Use Couchbase and RxJava to Make Java Read CSV files<\/title>\n<meta name=\"description\" content=\"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that&#039;s also useful as a Java CSV reader when paired with Couchbase.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Use Couchbase and RxJava to Make Java Read CSV files\" \/>\n<meta property=\"og:description\" content=\"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that&#039;s also useful as a Java CSV reader when paired with Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/thepolyglotdeveloper\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-19T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-23T12:10:08+00:00\" \/>\n<meta name=\"author\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nraboy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\"},\"author\":{\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\"},\"headline\":\"Use Couchbase and RxJava to Make Java Read CSV files\",\"datePublished\":\"2016-04-19T15:00:00+00:00\",\"dateModified\":\"2023-06-23T12:10:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\"},\"wordCount\":821,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"csv\"],\"articleSection\":[\"Couchbase Server\",\"Java\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\",\"name\":\"Use Couchbase and RxJava to Make Java Read CSV files\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-04-19T15:00:00+00:00\",\"dateModified\":\"2023-06-23T12:10:08+00:00\",\"description\":\"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that's also useful as a Java CSV reader when paired with Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Use Couchbase and RxJava to Make Java Read CSV files\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\",\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"caption\":\"Nic Raboy, Developer Advocate, Couchbase\"},\"description\":\"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.\",\"sameAs\":[\"https:\/\/www.thepolyglotdeveloper.com\",\"https:\/\/www.facebook.com\/thepolyglotdeveloper\",\"https:\/\/x.com\/nraboy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/nic-raboy-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Utiliza Couchbase y RxJava para que Java lea archivos CSV","description":"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that's also useful as a Java CSV reader when paired with Couchbase.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","og_locale":"es_MX","og_type":"article","og_title":"Use Couchbase and RxJava to Make Java Read CSV files","og_description":"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that's also useful as a Java CSV reader when paired with Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","og_site_name":"The Couchbase Blog","article_author":"https:\/\/www.facebook.com\/thepolyglotdeveloper","article_published_time":"2016-04-19T15:00:00+00:00","article_modified_time":"2023-06-23T12:10:08+00:00","author":"Nic Raboy, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@nraboy","twitter_misc":{"Written by":"Nic Raboy, Developer Advocate, Couchbase","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/"},"author":{"name":"Nic Raboy, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1"},"headline":"Use Couchbase and RxJava to Make Java Read CSV files","datePublished":"2016-04-19T15:00:00+00:00","dateModified":"2023-06-23T12:10:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/"},"wordCount":821,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["csv"],"articleSection":["Couchbase Server","Java"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","url":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","name":"Utiliza Couchbase y RxJava para que Java lea archivos CSV","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-04-19T15:00:00+00:00","dateModified":"2023-06-23T12:10:08+00:00","description":"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that's also useful as a Java CSV reader when paired with Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Use Couchbase and RxJava to Make Java Read CSV files"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1","name":"Nic Raboy, Defensor del Desarrollador, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354","url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","caption":"Nic Raboy, Developer Advocate, Couchbase"},"description":"Nic Raboy es un defensor de las tecnolog\u00edas modernas de desarrollo web y m\u00f3vil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y m\u00f3vil m\u00e1s f\u00e1cil de entender.","sameAs":["https:\/\/www.thepolyglotdeveloper.com","https:\/\/www.facebook.com\/thepolyglotdeveloper","https:\/\/x.com\/nraboy"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/nic-raboy-2\/"}]}},"authors":[{"term_id":9032,"user_id":63,"is_guest":0,"slug":"nic-raboy-2","display_name":"Nic Raboy, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","author_category":"","last_name":"Raboy","first_name":"Nic","job_title":"","user_url":"https:\/\/www.thepolyglotdeveloper.com","description":"Nic Raboy es un defensor de las tecnolog\u00edas modernas de desarrollo web y m\u00f3vil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y m\u00f3vil m\u00e1s f\u00e1cil de entender."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2220"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2220\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2220"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}