RStudio/Sparklyr на MAPR/Spark — заменить , на . в строке

У меня есть кадр данных Spark tbl_pred со следующим столбцом факторов:

**Value**    
13,3
11
5,3

Мне нравится преобразовывать эти «строки» в числовые значения. Я могу использовать функцию as.numeric, но это не работает, потому что мой разделитель — запятая.

tbl_pred <- tbl_bun %>% mutate(value = as.numeric(value))

Обычно я бы использовал подфункцию для замены , на . но эта функция не работает с моим объектом данных Spark.

Error: org.apache.spark.sql.AnalysisException: Undefined function: 'SUB'. This function is neither a registered temporary function nor a permanent function registered in the database 'xxx'.; line 1 pos 417

Есть ли у кого-нибудь решение для преобразования значений в числовое?

Заранее спасибо,

J.


person user3331966    schedule 10.02.2017    source источник


Ответы (1)


regexp_replace - это функция, которая вам нужна здесь:

tbl_bun %>% mutate(value=as.numeric(regexp_replace(value, ",", "\\.")))

В случае сомнений см. Руководство по языку Hive UDF. Практически каждая функция там либо имеет собственную реализацию Spark, либо представлена ​​как пользовательская функция Hive.

person zero323    schedule 10.02.2017
comment
Благодарю вас! Именно то, что мне было нужно. - person user3331966; 13.02.2017