我的数据目前看起来像这样
df = pd.DataFrame({'content': [bytearray(b'\x01%\xeb\x8cH\x89')]})
spark.createDataFrame(df).show()
+-------------------+
| content|
+-------------------+
|[01 25 EB 8C 48 89]|
+-------------------+
如何获取数组中每个值都有一行的列
+-------+
|content|
+-------+
| 1|
| 37|
| 235|
| 140|
| 72|
| 137|
+-------+
我试过爆炸,但这在bytearray上不起作用
edit:附加上下文,df是用spark.read.format('binaryfile').load(...)
读取二进制文件的结果
您需要在列上使用flatMap—传入一个函数来解析每个数据元素。您提供的函数应该发出一个序列。序列中的每个元素都将成为新行
这里有一个更详细的解释和更多的例子: https://koalatea.io/python-pyspark-flatmap/
使用UDF将bytearray转换为数组可能会有所帮助
我在这里用注释应用了一系列转换。不过有点“黑”
相关问题 更多 >
编程相关推荐