我正在运行 PySpark v1.6.0,并且我有一列字符串值(根据 .printSchema),但是当我尝试根据列值以“[”字符开头或包含“, " 字符,在这两种情况下,都是说我期望评估为 True 的行仍然是 False ...
当我运行代码时:
col_name = "attempt_params_attempt_response_id"
resultDF.select(col_name, resultDF[col_name].like(",")).show(50)
我得到:
我不明白这是怎么可能的,因为字符串值显然包含一个逗号,所以该行应该返回true,而不是false.
同样,当我尝试将行转换为ArrayType(StringType())(这是我的最终目标)时,它的行为也好像我的行不包含逗号......
当我运行代码时:
from pyspark.sql.types import ArrayType, IntegerType, StringType
col_name = "attempt_params_attempt_response_id"
resultDF.withColumn(col_name,
split(resultDF[col_name], ",\s*")
.cast(ArrayType(StringType()))).select(col_name).show(40)
我得到结果:
我想知道是否存在某种奇怪的编码问题导致字符,
与数据中似乎是,
字符的字符不匹配......但我真的不确定。关于为什么会发生这种情况以及如何在不创建多维数组文本的情况下实际使演员表工作的任何想法?
相关分类