Apache Spark JSON读取错误-java.lang.IllegalArgumentException:非法模式组件:XXX

时间:2018-11-28 20:44:44

标签: java json apache-spark apache-spark-dataset

我想在Spark 2.2.2和Java中加载JSON数据。

Dataset df = spark
                .read()
                .json(filePath);

但是我得到了错误:

java.lang.IllegalArgumentException: Illegal pattern component: XXX
21:42:34.430 [main] INFO OntologyLoader - An error occured while loading data into the ontology.
    at org.apache.commons.lang3.time.FastDatePrinter.parsePattern(FastDatePrinter.java:282)
    at org.apache.commons.lang3.time.FastDatePrinter.init(FastDatePrinter.java:149)

这是JSON文件的内容:

{"id":"155097","sku":"CASPA0000083386","idFamily":"137","family":"Health & Beauty","idService":"135","service":"Haircut & Styling","title":"Pruebas de peinado y maquillaje de novia en Shibuy","price":"80","genderProduct":"F","socialUsage":"1","ageUsage":"2,3","dailyDeal":"true","topDeal":"false","dealFamily":"1","shortTitle":"Pelu y maquillaje Novias: Eixample","campaignName":"peinado de novia o recogido y maquillaje de novia","metaTitle":"Peluquería + maquillaje para novias en Shibuya","metaDescription":"Htest. Ofertas de belleza. Peluquería + maquillaje para novias","metaKeywords":"oferta, peluquería, maquillaje, novias, shibuya","tradeName":"Shibuya Hair Salon","featured":"<h3>Oferta para novias. ¡Únete y disfruta!</h3>\n\n<p>Tu gran día se va acercando poco a poco ¿Y tienes ya todo listo? ¿El restaurante? ¿El vestido con sus respectivas pruebas? ¿El peinado y el maquillaje? ¿Ya sabes qué te quieres hacer y dónde? ¿No? ¡Ahhh! ¿Qué estás buscando no gastaste mucho? ¡claro  es que en las  bodas son todo gastos!</p>\n\n<p>Por eso y para ayudarte, estamos en Htest  para que en tu gran día estés más guapa que nunca y no dejes de brillar,  <strong>habiéndote ahorrado más que un par de euros con este fantástico descuento.</strong></p>\n\n<p>Ven a <strong>Shibuya </strong>y hazte con:</p>\n\n<ul><li>\n\t<p><strong>Hasta 2 horas de pruebas de peinado de novia  +  hasta 2 horas de pruebas de maquillaje</strong></p>\n\t</li></ul>\n\n<p>En Shibuya Hair Salon además son asesores de la imagen y si estás perdida y no sabes lo que buscas o no lo tienes claro, en todo momento te guiarán para conseguir la imagen que más se ajusta a tu personalidad, estilo y por supuesto vestido.</p>\n\n<p>Una vez que salgas de Shibuya Hair Salón solo te podrán decir: “¡Que viva esa novia!”</p>\n\n<h3>Htest colabora con Shibuya</h3>","specialPrice":"40","discount":"50","localization":"Barcelona","address":"C/ Viladomat, 200, 08029, Barcelona","lat":"41.3846985","lon":"2.150849","isInStock":"true","active":"true","initialDateMin":"0","finalDateMax":"0","reviewScore":"0","reviewRanking":"2088","paxPerCoupon":""}

我还尝试使用静态类解析JSON。但出现了相同的错误。

Encoder<Campaign> encoder = Encoders.bean(Campaign.class);
Dataset<Campaign> df = spark
                .read()
                .json(filePath)
                .as(encoder);

仅提及此代码在Spark 1.6.1中使用相同的数据即可工作。将Spark从1.6.1升级到2.2.2时发生错误。

1 个答案:

答案 0 :(得分:1)

java.lang.IllegalArgumentException: Illegal pattern component: XXX库引发了错误commons-lang3。看起来您的pom.xml中具有commons-lang3依赖项的旧版本,或者它正由其他依赖项获取。尝试添加最新的commons-lang3版本,如下所示。

<dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.8</version>
</dependency>