2 つのデータフレームで結合を実行する単純なユース ケースがあり、spark 1.6.3 バージョンを使用しています。問題は、キャスト メソッドを使用して文字列型を整数型にキャストしようとすると、結果の列がすべて null 値になることです。
ここに記載されているすべてのソリューションを既に試しましたデータフレームで列をキャストする方法は? しかし、すべての質問にはscala apiの回答があり、Java apiで動作する人を見つけることができませんでした.
DataFrame dataFromDB = getDataFromDB("(select * from schema.table where
col1 is not null)"); //This method uses spark sql
//to connect to a db2 data base and get the data
//I perform the cast operation as
dataFromDB.withColumn("INCOME_DATA", dataFromDB.col("INCOME_DATA")
.cast(DataTypes.IntegerType));
//but the above results in null values
//other things I tried based on the link above is below
dataFromDB.selectExpr(cast("INCOME_DATA" as integer")) //this too produces null values
//I tried to remove the whitespaces from income data column with no success
dataFromDB.select(dataFromDB.col("INCOME_DATA").toString().replaceAll("\\s+", ""); //this does not remove any whitespace
解決策を見つけることができません。また、変換しようとしている列は文字列型であり、末尾に空白が含まれている可能性があります。これは問題になる可能性がありますか? はいの場合、どうすれば削除できますか。以下のように削除しようとしましたが、うまくいかないようです。これは、spark データフレームを使用する初めての作業であるため、これに関するヘルプをいただければ幸いです。ありがとう!