首页 文章

从Spark DataFrame列名称中删除“ . ”

提问于
浏览
2

如何删除“ . ”从Spark DataFrame列名?

DataFrame.select(F.col().alias()) 方法重命名其中包含"."的列名会引发错误 .

以下代码是可重现的 .

# import Spark libraries, configuration, Contexts, and types.
import pyspark
from pyspark.sql import SparkSession
import pyspark.sql.functions as F
#############
# Start Spark.
spark = SparkSession.builder.appName("test").getOrCreate()

testdf = spark.createDataFrame([
    (1, "Julie", "CEO"),
    (2, "Janice", "CFO"),
    (3, "Jake", "CTO")],
    ["ID", "First Name", "Title Initial."])

# this works just fine.
testdf.select(F.col('First Name').alias('first_name')).show(3)

# This throws an error. 
testdf.select(F.col('Title Initial.').alias('title')).show(3)

错误:

AnalysisException: u'syntax error in attribute name: Title Initial.;'

更改具有“ . ”的DataFrame列名称的替代方法是什么?在他们中?

1 回答

  • 1

    使用 ``` 环绕列名称

    testdf.select(F.col('`Title Initial.`').alias('title')).show(3)
    

相关问题