Я использую 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
Может кто-нибудь помочь мне с этим?