Не удалось сохранить файл в озере данных Azure из блоков данных Azure.

Я пытаюсь сохранить содержимое строки в озере данных Azure как содержимое XML.

строковая переменная содержит указанный ниже XML-контент.

<project>
    <dateformat>dd-MM-yy</dateformat>
    <timeformat>HH:mm</timeformat>
    <useCDATA>true</useCDATA>
</project>

я использовал приведенный ниже код для обработки файла в озеро данных.

xmlfilewrite = "/mnt/adls/ProjectDataDecoded.xml"
with open(xmlfilewrite , "w") as f:
    f.write(project_processed_var)

выдает следующую ошибку: Нет такого файла или каталога: '/mnt/adls/ProjectDataDecoded.xml"

Я могу получить доступ к озеру данных, используя указанную выше точку подключения, но не могу использовать указанную выше функцию «открыть».

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


person Pradeep Kaja    schedule 05.03.2020    source источник


Ответы (2)


Проблема решена.

В блоках данных, когда у вас есть точка подключения, существующая в Azure Data Lake, нам нужно добавить «/dbfs» к пути и передать его функции OPEN. Проблема решена с помощью кода ниже

xmlfilewrite = "/dbfs/mnt/adls/ProjectDataDecoded.xml"
with open(xmlfilewrite , "w") as f:
    f.write(project_processed_var)
person Pradeep Kaja    schedule 09.03.2020

Вы можете попробовать использовать библиотеку Spark-XML. Преобразуйте свою строку в фрейм данных, где каждая строка обозначает один проект. Затем вы можете записать его в ADLS таким образом.

df.select("dateformat", "timeformat","useCDATA").write \
  .format('xml') \
  .options(rowTag='project', rootTag='project') \
  .save('/mnt/adls/ProjectDataDecoded.xml')

Вот как вы можете включить внешнюю библиотеку: https://docs.databricks.com/libraries.html#create-a-library

person SA 95    schedule 06.03.2020
comment
я попытался сохранить \XML, как было предложено, но он сохраняется в другом формате, как показано ниже. ``` ‹ROWS› ‹project› ‹ProjectData›project dateformatdd-MM-yy/dateformat timeformatHH:mm/timeformat useCDATAtrue/useCDATA ‹/ProjectData› ‹/project› ‹/ROWS› ``` Не могли бы вы предоставить мне, как преобразовать строку в фрейм данных. - person Pradeep Kaja; 06.03.2020