2015-05-20 3 views
1

У меня есть DataFrame с полями, которые содержат период. Когда я пытаюсь использовать select() на них, Spark не может их разрешить, вероятно, потому что «.» используется для доступа к вложенным полям.Доступ к именам столбцов с периодами - Spark SQL 1.3

Вот ошибка:

enrichData.select("google.com") org.apache.spark.sql.AnalysisException: cannot resolve 'google.com' given input columns google.com, yahoo.com, ....

Есть ли способ, чтобы получить доступ к этим столбцам? Или простой способ изменить имена столбцов (поскольку я не могу их выбрать, как я могу изменить имена?).

ответ

1

Вы можете оставить схему и воссоздать его без периодов, как это:

val newEnrichData = sqlContext.createDataFrame(
    enrichData.rdd, 
    StructType(enrichData.schema.fields.map(sf => 
    StructField(sf.name.replace(".", ""), sf.dataType, sf.nullable) 
)) 
) 
Смежные вопросы