Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 火花导入拼花文件将字符串转换为bytearray_Apache Spark_Parquet - Fatal编程技术网

Apache spark 火花导入拼花文件将字符串转换为bytearray

Apache 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类型时,我看到

我有一个未压缩的拼花地板文件,其中有“爬虫日志”之类的数据

我通过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类型时,我看到

((主机二进制),(校验和二进制)…。

我能做些什么来避免这种转换,或者如何转换回我需要的

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时,我得到了这种行为。我没有明确要求在创建时对其进行压缩,并且信息消息说该文件未压缩。