приведение нескольких столбцов к типу

Должно быть легко ответить на вопрос... Я делаю это неправильно? Могу ли я не создавать несколько столбцов?

>>> val results2 = results.select( results["HCAHPS Base Score"].cast(IntegerType).as(results["HCAHPS Base Score"]), results["HCAHPS Consistency Score"].cast(IntegerType).as(results["HCAHPS Consistency Score"]) )
File "<stdin>", line 1
val results2 = results.select( results["HCAHPS Base Score"].cast(IntegerType).as(results["HCAHPS Base Score"]), results["HCAHPS Consistency Score"].cast(IntegerType).as(results["HCAHPS Consistency Score"]) )
               ^
SyntaxError: invalid syntax

Синтаксическая ошибка продолжает появляться прямо вокруг запятой...


person Frederic Bastiat    schedule 07.03.2017    source источник
comment
почему val использовать только results2 = results.select( results["HCAHPS Base Score"].cast(IntegerType).as(results["HCAHPS Base Score"]), results["HCAHPS Consistency Score"].cast(IntegerType).as(results["HCAHPS Consistency Score"]) )   -  person Rakesh Kumar    schedule 07.03.2017
comment
все еще получаю синтаксическую ошибку, на этот раз сразу после первой кавычки здесь, ближе к концу: результаты [Оценка согласованности HCAHPS])   -  person Frederic Bastiat    schedule 07.03.2017
comment
какая ошибка сейчас?   -  person Rakesh Kumar    schedule 07.03.2017
comment
и не используйте results["HCAHPS Base Score"]), вместо этого используйте from pyspark.sql.functions import col, а затем измените свое утверждение на results2 = results.select( col("HCAHPS Base Score").cast(IntegerType), col("HCAHPS Consistency Score").cast(IntegerType))   -  person Rakesh Kumar    schedule 07.03.2017
comment
это решено?   -  person Rakesh Kumar    schedule 07.03.2017
comment
да, но в столбцах строкового типа их заключали в кавычки, поэтому целочисленное преобразование везде приводило к нулевым значениям. Не могли бы вы помочь мне с моим исправленным кодом здесь: stackoverflow.com/questions/42659944/   -  person Frederic Bastiat    schedule 08.03.2017


Ответы (1)


Попробуй это. Я предполагаю, что это pySpark, поскольку вопрос помечен под PySpark

results2 = results.select( results["HCAHPS Base Score"].cast(IntegerType()).alias("HCAHPS Base Score"), results["HCAHPS Consistency Score"].cast(IntegerType()).alias("HCAHPS Consistency Score") )

В Scala вы можете попробовать следующее.

val results2 = results.select( results["HCAHPS Base Score"].cast(IntegerType).as("HCAHPS Base Score"), results["HCAHPS Consistency Score"].cast(IntegerType).as("HCAHPS Consistency Score") )
person Rags    schedule 07.03.2017