代码之家  ›  专栏  ›  技术社区  ›  Big_Data

java.lang.NumberFormatException:对于输入字符串:“”

  •  0
  • Big_Data  · 技术社区  · 6 年前

    我已经将一个表导入到hdfs中

    以“”结尾的字段

    sqoop import \
    --connect jdbc:mysql://connection \
    --username  \
    --password  \
    --table products \
    --as-textfile \
    --target-dir /user/username/productsdemo \
    --fields-terminated-by '|'
    

    之后,我尝试使用Spark Shell版本1.6.2将其读作RDD。

    var productsRDD = sc.textFile("/user/username/productsdemo")
    

    并将其转换为数据帧

    var productsDF = productsRDD.map(product =>{ 
    var o = product.split("|");
    products(o(0).toInt,o(1).toInt,o(2),o(3),o(4).toFloat,o(5))
    }).toDF("product_id", "product_category_id","product_name","product_description","product_price","product_image" )
    

    但当我尝试打印输出时,它抛出了下面的异常。

    java.lang.NumberFormatException:对于输入字符串:“”

    为什么我会犯这个错误,有人能帮我吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   flyingfox    6 年前

    split regex | OR \\|

    var o = product.split("\\|");