У этого человека была аналогичная проблема: http://apache-spark-user-list.1001560.n3.nabble.com/How-to-use-DataFrame-with-MySQL-td22178.html
Обновили ли вы драйверы соединителей до последней версии? Также вы указали класс драйвера при вызове load ()?
Map options = new HashMap();
options.put("url", "jdbc:mysql://localhost:3306/video_rcmd?user=root&password=123456");
options.put("dbtable", "video");
options.put("driver", "com.mysql.jdbc.Driver"); //here
DataFrame jdbcDF = sqlContext.load("jdbc", options);
В искровом / conf / spark-defaults.conf вы также можете установить spark.driver.extraClassPath и spark.executor.extraClassPath на путь вашего драйвера MySql .jar
Эта статья может вам помочь ... вам требуется только знать xpath http://onjava.com/onjava/2007/09/07/schema-less-java-xml-data-binding-with -vtd-xml.html
EclipseLink JAXB (MOXy) позволяет вам выполнить сопоставление на основе пути:
@XmlRootElement
class Animal
{
@XmlPath("standardName/Name/text()")
private String name;
@XmlPath("standardVersion/VersionIdentifier/text()");
private String versionIdentifier;
}
Для получения дополнительной информации см .:
EclipseLink также позволяет указывать метаданные с использованием внешнего файла конфигурации:
Jakarta Commons Digester должен делать то, что вы хотите.
В качестве альтернативы я бы рекомендовал написать класс преобразования, который использует XPath для извлечения элементов из XML.
Я считаю, что JiBX - лучший из них (JAXB, Castor, XMLBeans и т. д.), особенно потому, что я предпочитаю файлы сопоставления над аннотациями. По общему признанию, он имеет приличную кривую обучения, но на веб-сайте есть много хороших примеров. Вы, должно быть, пропустили учебник .
Если вы идете только в одном направлении (XML -> POJO), вы можете использовать Digester .
Боковой комментарий: я предпочитаю сопоставлять файлы по аннотациям, потому что аннотации: