Связь с использованием шлюза Py4J по умолчанию просто невозможна. Чтобы понять, почему мы должны взглянуть на следующую диаграмму из документа PySpark Internals [1]:
Поскольку шлюз Py4J работает на драйвере он не доступен интерпретаторам Python, которые взаимодействуют с рабочими JVM через сокеты (см., например, PythonRDD
/ rdd.py
).
Теоретически было бы возможно создать отдельный Py4J-шлюз для каждого рабочего, но на практике это вряд ли будет полезно. Игнорирование таких проблем, как надежность Py4J, просто не предназначено для выполнения задач, требующих большой объем данных.
Есть ли какие-либо обходные пути?
DataFrames
(см. Как использовать класс Scala внутри Pyspark ). Последнее решение выглядит гораздо более дружелюбным, поскольку все данные уже обрабатываются существующим API. Минусы: Низкий уровень, требуемое преобразование данных, то же, что и UDF, требует доступа к Py4J и внутреннему API, не поддерживается Некоторые основные примеры можно найти в Преобразование PySpark RDD с помощью Scala SQLContext
(см., Например, Apache Zeppelin или Livy ) для передачи данных между гостевыми языками с использованием зарегистрированных временных таблиц. Плюсы: хорошо подходит для интерактивного анализа Минусы: не столько для пакетных заданий (Цеппелин), либо может потребоваться дополнительная оркестровка (Livy) KDiff3 не является специфичным для XML, но он является бесплатным. Это хорошая работа по сравнению и слиянию текстовых файлов.
A7Soft предоставляет инструменты сравнения и сравнения XML:
Это движок для разработчиков java, но в нем есть демонстрационный интерфейс - вы можете его использовать: https://community.emc.com/docs/DOC-5042
Инструмент Pretty Diff был создан с учетом XML. Просто убедитесь, что вы нажмете опцию «разметка».
Я использую TortoiseMerge, который включен в программу TortoiseSVN
. Мы говорили о инструментах File Diff в этом потоке, не посвященных XML, хотя
https://stackoverflow.com/questions/1830962/file-differencing-software-on-windows
(if not, I will start up an open-source one :)
Ничего себе, замечательно! с нетерпением ждем его, пожалуйста, снимите ссылку где-то здесь, если она начнется.
– YOU
9 December 2009 в 02:51
Есть несколько инструментов XML и методов слияния на основе Java, перечисленных здесь:
Open Source XML Diff, написанный на Java
Добавленные ссылки:
Я рекомендую вам использовать инструмент CodeCompare . Он поддерживает собственное выделение XML-данных, и это может быть хорошим решением для вашей задачи.
Хотя это не инструмент GUI, мои быстрые тесты показали, что diffxml имеет некоторые перспективы. Автор, похоже, подумал о сложностях представления различий для вложенных элементов стандартизованным способом (его спецификация языка DUL - Delta Update Language).
Установив и запустив свои инструменты, могу сказать, что вывод исходного текста довольно ясен и краток. Он не предлагает такую же степень непосредственного восприятия, как инструмент графического интерфейса, но при условии, что выход стандартизирован как DUL, возможно, вы сможете это сделать и создать инструмент для создания визуального представления. Мне бы очень хотелось его увидеть.
В разделе «Ссылки» автора есть ссылка на несколько других инструментов разнесения XML, но, как вы упомянули в своем сообщении, они все являются собственностью.
DiffDog от Altova имеет бесплатную 30-дневную пробную версию и должен делать то, что вы ищете:
Я понимаю, что эта ветка немного старая, и я уверен, что вы нашли решение к настоящему времени, но для будущих читателей я написал и выпустил приложение Windows, которое специально решает проблему сравнения и слияния XML-файлов.
Project: Merge может выполнять два и три способа сравнения и слияния любого файла XML (где два файла считаются независимыми версиями общего базового файла). Вы можете дать ему указание идентифицировать элементы во входных файлах по значениям атрибутов или по содержанию дочерних элементов.
Он полностью управляется через командную строку и может также генерировать текстовые отчеты, содержащие различия между файлами.
[/g1]
<p>
), который добавляется форматированием (например, <i>
, <em>
). Итак, Project :: Merge показывает, что полный пара был изменен, он не делает углубленного анализа слов.
– dma_k
23 August 2011 в 10:28