Apache spark 火花导入拼花文件将字符串转换为bytearray
我有一个未压缩的拼花地板文件,其中有“爬虫日志”之类的数据 我通过PySpark as将其导入SparkApache spark 火花导入拼花文件将字符串转换为bytearray,apache-spark,parquet,Apache Spark,Parquet,我有一个未压缩的拼花地板文件,其中有“爬虫日志”之类的数据 我通过PySpark as将其导入Spark sq=SQLContext(sc) p=sq.read.parquet('/path/to/stored_as_parquet/table/in/hive')) p、 拿(1)个。show() 这将显示转换为的源数据中的字符串 Row(host=bytearray(b'somehostname'),(checksum=bytearray(b'stuff'))…) 当我做p.D类型时,我看到
sq=SQLContext(sc)
p=sq.read.parquet('/path/to/stored_as_parquet/table/in/hive'))
p、 拿(1)个。show()
这将显示转换为的源数据中的字符串
Row(host=bytearray(b'somehostname'),(checksum=bytearray(b'stuff'))…)
当我做p.D类型时,我看到
((主机二进制),(校验和二进制)…。
我能做些什么来避免这种转换,或者如何转换回我需要的
i、 当我做我想看的p.D类型时
((主机字符串),(校验和字符串)…)
谢谢。我遇到了同样的问题。添加
sqlContext.setConf("spark.sql.parquet.binaryAsString","true")
创建SqlContext后,立即为我解决了它。适用于spark 2.0或更高版本 设置运行时选项
spark.conf.set("spark.sql.parquet.binaryAsString","true")
拼花地板可以不压缩吗?拼花地板文件是如何创建的?看起来它是作为bytearray写入的…拼花地板文件本身将所有内容声明为字符串,在配置单元中它显示为字符串-它是作为ETL作业的结果从spark写入的结果创建的。作为一个蜂巢桌,它看起来很好。当我将它的子集表拉入Spark时,我得到了这种行为。我没有明确要求在创建时对其进行压缩,并且信息消息说该文件未压缩。