2017-04-12 17 views
1

私はspark javaでスクリプトを作成しています。 私はLucidworksを使用してSolrコレクションに(DATAFRAMEから)データを挿入する必要がある - 火花Solrのツール(https://github.com/lucidworks/spark-solrLucidworks save solr format不明フィールド

私のschema.xml:

<schema name="MY_NAME" version="1.6"> 
    <field name="_version_" type="long" indexed="true" stored="true" /> 
    <field name="_root_" type="string" indexed="true" stored="false" /> 
    <field name="ignored_id" type="ignored" /> 
    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
    <field name="age" type="int" indexed="true" stored="true" required="false" multiValued="false" /> 
    <field name="height" type="tlong" indexed="true" stored="true" required="false" multiValued="false" /> 
    <field name="name " type="string" indexed="true" stored="true" required="false" multiValued="false" /> 

    <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> 
    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0" /> 
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0" /> 
    <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0" /> 
    <fieldType name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" /> 

    <uniqueKey>id</uniqueKey> 
</schema> 

マイDATAFRAME:

DataFrame df = sqlContext.sql("SELECT id, age, height, name FROM TABLE"); 

df.show():

+--------------------+-----------+------+------+ 
|     id|  age|height|name | 
+--------------------+-----------+------+------+ 
|12345678912345678...|   10| 101|hello| 

私が試してみるとフィールド「_indexed_at_tdt」はどこから来るのか、私は理解していない

Caused by: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://MY_IP/solr/MY_COLLECTION_SHARD_REPLICA: ERROR :[doc=123456789123456789] unknown field '_indexed_at_tdt' 

:私は次のエラーを持っている

df.write() 
.format("solr") 
.option("collection", MY_COLLECTION) 
.option("zkhost", MY_ZKHOST) 
.save() 

:と私のSolrコレクションに挿入します。

DataFrameは正しい4つのフィールドしか挿入できませんが、この未知フィールド "_indexed_at_tdt"のために私のSolrコレクションに挿入できません。

その他の情報: 同じコレクションに挿入して動作しているHBase Indexerがあります。

ご協力いただきありがとうございます!

答えて

0

ご覧のとおり、hereはLucidworksコードで自動的にフィールドが追加されたようです。あなたは_tdt *のためにそれを動的に好むなら、

<field name="_indexed_at_tdt" type="tdate" indexed="true" stored="true" required="false" multiValued="false" /> 

または:

は、あなただけのスキーマに対応するフィールドを追加する必要があり、それが動作します。

+0

ありがとうございました!私はフィールドを追加し、それは今働いている – Drakax

関連する問題