【问题标题】:Apache Spark JSON read error - java.lang.IllegalArgumentException: Illegal pattern component: XXXApache Spark JSON 读取错误 - java.lang.IllegalArgumentException:非法模式组件:XXX
【发布时间】:2019-04-30 20:29:53
【问题描述】:

我想在 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 时出现错误。

【问题讨论】:

  • 那个 Json 是无效的,如果它在任何 Json 解析器中工作,我都会感到惊讶。
  • @PerdiEstaquel:您是否尝试从我的帖子中复制 JSON 字符串并将其粘贴到任何在线 JSON 查看器中?;)

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


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 2017-03-05
    • 1970-01-01
    • 2017-10-21
    • 2016-12-18
    • 1970-01-01
    • 2016-11-27
    相关资源
    最近更新 更多