spark 从Rdd 构造df 报错

问题一

如下报错,
第4行定义的action_time 的形式如下:
 StructField("action_time", StringType, nullable = false)
 即不允许为空,但是转换的数据中有对应不上的。所以会报错。
Caused by: java.lang.RuntimeException: The 4th field 'action_time' of input row cannot be null.
这里的4th 其实指的是第五列的内容。

问题二

如下报错:
Caused by: java.lang.RuntimeException: java.lang.Long is not a valid external type for schema of string

spark 的schema 定义和对应的数据对应不上,所以报错。
val schema = Array(
            StructField("session_id",StringType, nullable = false),
            StructField("user_id", LongType, nullable = false),
            StructField("page_id", LongType, nullable = false),
            StructField("action_time", StringType, nullable = false),
            StructField("search_keyword", StringType, nullable = true),
            StructField("click_category_id", LongType, nullable = true),
            StructField("click_procduct_id", LongType, nullable = true),
            StructField("order_category_ids", StringType, nullable = true),
            StructField("order_product_ids", StringType, nullable = true),
            StructField("pay_category_ids", StringType, nullable = true),
            StructField("pay_product_ids", StringType, nullable = true),
            StructField("date", StringType, nullable = false)
        )
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值