开发者社区> 问答> 正文

Spark:如何在JSON中将空字符串值解析为null

我知道我可以编写一个udf来将空字符串映射为null,但是我的数据有很多列(100+),因此由于涉及许多转换,因此似乎会降低性能。json解析器上是否有任何标志/选项只是从一开始就将null写入?

展开
收起
游客ufivfoddcd53c 2020-01-04 16:28:37 1537 0
1 条回答
写回答
取消 提交回答
  • 尝试这个:

    df = spark.read.load('file:///home/zht/PycharmProjects/test/json_file.json', format='json')
    
    myfunc = f.UserDefinedFunction(lambda *args: map(lambda x: None if x == '' else x, args),
                                   returnType=ArrayType(StringType()))
    cols = df.columns
    df = df.select(myfunc(*cols)).rdd.flatMap(lambda x: x)
    df = spark.createDataFrame(df, schema=cols)
    df.show()
    
    2020-01-04 16:28:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载