У меня есть простой вариант использования соединения двух фреймов данных, я использую версию spark 1.6.3. Проблема заключается в том, что при попытке привести строковый тип к целочисленному типу с помощью метода приведения результирующий столбец имеет нулевые значения.
Я уже испробовал все решения, упомянутые здесь Как создать столбец в кадре данных? но на все вопросы есть ответы по 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
Я не могу найти решение для этого, также столбец, который я пытаюсь преобразовать, имеет тип String и может содержать конечные пробелы, может ли это быть проблемой? если да, то как я могу их удалить, я пытался удалить их, как показано ниже, но, похоже, не работает. Это моя первая работа с фреймворком данных Spark, поэтому любая помощь в этом очень ценится. Спасибо!