Apache spark Pypark:阅读“分隔拼花地板”;my_file.parquet/col1=NOW";字符串值替换为<;当前时间>;在读()

Apache spark Pypark:阅读“分隔拼花地板”;my_file.parquet/col1=NOW";字符串值替换为<;当前时间>;在读(),apache-spark,pyspark,apache-spark-sql,parquet,partition,Apache Spark,Pyspark,Apache Spark Sql,Parquet,Partition,在wsl Debian 10上使用pyspark 3.1.1 当读取用包含字符串NOW的列分割的拼花地板文件时,该字符串将替换为执行read()函数时的当前时间。我假设NOW字符串被解释为NOW() 这是一个bug还是pyspark的正常功能? 如果是后者,是否有一个sparkContext选项来避免这种行为?我怀疑这是预期的功能。。。但我不确定它是在哪里记录的。无论如何,如果要将该列保持为字符串列,可以在读取拼花地板文件时提供架构: df = spark.read.schema("i

在wsl Debian 10上使用pyspark 3.1.1

当读取用包含字符串
NOW
的列分割的拼花地板文件时,该字符串将替换为执行
read()
函数时的当前时间。我假设
NOW
字符串被解释为
NOW()

这是一个bug还是pyspark的正常功能?
如果是后者,是否有一个
sparkContext
选项来避免这种行为?

我怀疑这是预期的功能。。。但我不确定它是在哪里记录的。无论如何,如果要将该列保持为字符串列,可以在读取拼花地板文件时提供架构:

df = spark.read.schema("id long, col1 string").parquet("test/test.parquet")

df.show()
+---+----+
| id|col1|
+---+----+
|  1| NOW|
|  2|TEST|
+---+----+
行得通:)谢谢!但我仍然认为这是一种奇怪的行为,因为最初的df creation printSchema()表示col1已经是StringType(),所以我假设在write()->read()之后会保留该模式
df = spark.read.schema("id long, col1 string").parquet("test/test.parquet")

df.show()
+---+----+
| id|col1|
+---+----+
|  1| NOW|
|  2|TEST|
+---+----+