相关疑难解决方法(0)

PySpark: org.apache.spark.sql.AnalysisException: 属性名称 ... 在 " ,;{}()\n\t=" 中包含无效字符。请使用别名重命名

我正在尝试将 Parquet 数据加载到 中PySpark,其中列的名称中有一个空格:

df = spark.read.parquet('my_parquet_dump')
df.select(df['Foo Bar'].alias('foobar'))
Run Code Online (Sandbox Code Playgroud)

尽管我已经别名列,我还是从收到此错误和错误传播JVM的一侧PySpark。我在下面附上了堆栈跟踪。

有没有办法可以将这个镶木地板文件加载到PySpark.

---------------------------------------------------------------------------
Py4JJavaError                             Traceback (most recent call last)
/usr/local/python/pyspark/sql/utils.py in deco(*a, **kw)
     62         try:
---> 63             return f(*a, **kw)
     64         except py4j.protocol.Py4JJavaError as e:

/usr/local/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
    318                     "An error occurred while calling {0}{1}{2}.\n".
--> 319                     format(target_id, ".", name), value)
    320             else:

Py4JJavaError: An error occurred while calling o864.collectToPython.
: org.apache.spark.sql.AnalysisException: Attribute name "Foo Bar" contains invalid character(s) among …
Run Code Online (Sandbox Code Playgroud)

python apache-spark parquet pyspark spark-dataframe

9
推荐指数
1
解决办法
3万
查看次数

使用spark sql重命名Parquet文件中列名中的空格

我想使用 Spark Sql 显示 parquet 文件的内容,但由于 parquet 文件中的列名称包含空格,我收到错误 - 属性名称“名字”包含 " ,;{}()\n 中的无效字符\t=”。请使用别名来重命名。;

我写了下面的代码 -

val r1 = spark.read.parquet("filepath")
val r2 = r1.toDF()
r2.select(r2("First Name").alias("FirstName")).show()
Run Code Online (Sandbox Code Playgroud)

但仍然遇到同样的错误

parquet apache-spark-sql

6
推荐指数
1
解决办法
4984
查看次数