使用spark scala在solr中摄取数据

时间:2017-05-07 11:25:21

标签: scala hadoop apache-spark solr

我正在尝试使用scala和spark将数据提取到solr但是,我的代码遗漏了一些东西。例如,我从Hortonworks教程获得了以下代码。 我使用的是spark 1.6.2,solr 5.2.1,scala 2.10.5。

有人能为我提供一个可行的片段,以便成功地将数据插入到solr中吗?

val input_file = "hdfs:///tmp/your_text_file"
   case class Person(id: Int, name: String)
   val people_df1 = sc.textFile(input_file).map(_.split(",")).map(p => Person(p(0).trim.toInt, p(1))).toDF()
   val docs = people_df1.map{doc=>
     val docx=SolrSupport.autoMapToSolrInputDoc(doc.getAs[Int]("id").toString, doc, null)
     docx.setField("scala_s", "supercool")
     docx.setField("name_s", doc.getAs[String]("name"))

   }

//下面的代码有一些编译问题,尽管jar文件包含这些函数。

SolrSupport.indexDocs("sandbox.hortonworks.com:2181","testsparksolr",10,docs)
       val solrServer = com.lucidworks.spark.SolrSupport.getSolrServer("http://ambari.asiacell.com:2181")
       solrServer.setDefaultCollection("
testsparksolr")
   solrServer.commit(false, false)

提前致谢

1 个答案:

答案 0 :(得分:1)

您是否尝试过spark-solr

该库的主要重点是提供一个干净的API,以便将文档索引到Solr服务器,就像你的情况一样。