java - java.lang.RuntimeException:java.lang.Integer 不是 bigint 架构的有效外部类型:java.io.IOException
问题描述
我有一个包含以下数据的 RDD,我正在尝试将其转换为 spark Dataframe。
JavaRDD<Row> myRdd = df.javaRDD()
// do some processing on RDD
// myRdd after processing -> [("user1", 200), ("user2", 200L)]
// mySchema -> DataTypes.createStructType(new StructField[] {
// DataTypes.createStructField("Name", DataTypes.StringType, true),
// DataTypes.createStructField("Salary", DataTypes.LongType, true)});
myDf = sparkSession.createDataFrame(myRdd, mySchema)
我收到以下错误
java.lang.RuntimeException: java.lang.Integer is not a valid external type for schema of bigint: java.io.IOException
由于数据可以在不同的行中变化,我想使用最兼容的模式来适应所有的行。因此,我long
为该列使用数据类型salary
。如何让 spark 自动将其类型转换为更高的数据类型
解决方案
推荐阅读
- amazon-web-services - AWS Amplify 构建设置
- gnuplot - 如何设置调色板对称 gnuplot
- powershell - Powershell AD 计算机描述附加
- python - Python 字符串“in”运算符
- php - PHP 致命错误:未捕获的错误:在 null 上调用成员函数 query()
- c# - Selenium 网格以管理员身份启动远程 IE 浏览器
- java - 在 IntelliJ 中每次 git pull 后生成的 Sources Root 都消失了
- angular - Angular 9,拖放嵌套树,当链接到父下拉列表时,不允许在原始下拉列表中拖动
- php - 如何在 PHPWord 中制作有序列表项?
- php - 来自表单的 PHP 电子邮件将标签复数