Parquet 文件的 Spark 导入将字符串转换为 bytearray
Spark import of Parquet files converts strings to bytearray
我有一个未压缩的 Parquet 文件,其中包含 "crawler log" 类数据。
我通过 PySpark 将其导入 Spark 为
sq = SQLContext(sc)
p = sq.read.parquet('/path/to/stored_as_parquet/table/in/hive')
p.take(1).show()
这显示源数据中的字符串已转换为
Row(host=bytearray(b'somehostname'), (checksum=bytearray(b'stuff'))...)
当我这样做时 p.dtypes 我明白了
((host binary), (checksum binary) ....).
我能做些什么来避免这种转换,或者我如何转换回我需要的东西
即当我做 p.dtypes 我想看
((host string), (checksum string) ....)
谢谢。
我运行遇到了同样的问题。添加
sqlContext.setConf("spark.sql.parquet.binaryAsString","true")
在创建我的 SqlContext 后,就为我解决了它。
对于 spark 2.0 或更高版本
设置运行时选项
spark.conf.set("spark.sql.parquet.binaryAsString","true")
对于使用 SparkSession
的人来说:
spark = SparkSession.builder.config('spark.sql.parquet.binaryAsString', 'true').getOrCreate().newSession()
我有一个未压缩的 Parquet 文件,其中包含 "crawler log" 类数据。
我通过 PySpark 将其导入 Spark 为
sq = SQLContext(sc)
p = sq.read.parquet('/path/to/stored_as_parquet/table/in/hive')
p.take(1).show()
这显示源数据中的字符串已转换为
Row(host=bytearray(b'somehostname'), (checksum=bytearray(b'stuff'))...)
当我这样做时 p.dtypes 我明白了
((host binary), (checksum binary) ....).
我能做些什么来避免这种转换,或者我如何转换回我需要的东西
即当我做 p.dtypes 我想看
((host string), (checksum string) ....)
谢谢。
我运行遇到了同样的问题。添加
sqlContext.setConf("spark.sql.parquet.binaryAsString","true")
在创建我的 SqlContext 后,就为我解决了它。
对于 spark 2.0 或更高版本
设置运行时选项
spark.conf.set("spark.sql.parquet.binaryAsString","true")
对于使用 SparkSession
的人来说:
spark = SparkSession.builder.config('spark.sql.parquet.binaryAsString', 'true').getOrCreate().newSession()