Как передать ключ файла свойств в xpath - PullRequest
0 голосов
/ 14 февраля 2019

Я использую spark 2.3.0 и пытаюсь передать ключ файла свойств в xpath, чтобы получить значение из файла свойств.

Я попытался передать оператор select в xpath, а также попытался передать dataframe какесть, и это не помогло.

У меня есть сценарий: у меня есть XML-файл в качестве входных данных и файл свойств, который я создал

<ROW><a>value1</a>
<b>valueb</b></ROW>, 

файл свойств выглядит следующим образом:

lookupValue1 = /row/a
lookupValue2 = /row/b

Я создал фрейм данных для чтения этого xml как текста, потому что чтение как xml вызывало исключение nullpointer:

    Dataset<Row> usersDF = spark.read().format("text").load("pathOfFile");
    usersDF.createOrReplaceTempView("xmlFile");

Теперь у меня есть файл свойств в ключе = значение, я создалфрейм данных для разделения ключа и значения на 2 разных столбца, например

    Dataset<Row> propertyDF = spark.read().format("text").load(fname);
    propertyDF.createOrReplaceTempView("propertyFile");

    Dataset<Row> splitValues = spark.sql("select split(value, '=')[0] as scheme, split(value, '=')[1] as tag from propertyFile");

У меня есть поиск, откуда я получаю значения столбца.Проблема, с которой я сталкиваюсь, заключается в том, что при выборе тега xml:

spark.sql("select xpath(value,'/row/a/text()') as Application_ID from xmlFile)

дает мне значение тега -> отлично работает.

Я хочу знать, как передать ключ файла свойств в xpathчтобы получить значение из файла свойств, который, в свою очередь, получает значение из xml.

Что-то вроде этого xpath(value,'lookupValue1/text()') -> даст мне значение1

Может кто-нибудь помочь мне с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...