错误:无法访问bigquery中类型为array< struct< element string>>的值的字段元素

bxgwgixi  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(513)

我将一个df从pyspark导出到bigquery。df有带数组元素的列,如何将数组转换为串联字符串?每当我试图查询导出的bigquery表的array列时,就会出现以下错误。

  1. Error: Cannot access field element on a value with type ARRAY<STRUCT<element STRING>>

下面是pyspark中导出到bigquery的df:

  1. +-----------+----------+-------------------+------------------+
  2. | antecedent|consequent| confidence| lift|
  3. +-----------+----------+-------------------+------------------+
  4. |[19, 6, 39]| [44]| 0.418945963975984|10.602038775664845|
  5. |[19, 6, 39]| [35]|0.47298198799199465| 7.423073393311932|
  6. |[19, 6, 39]| [322]| 0.47631754503002|4.6520592549063995|
  7. |[19, 6, 39]| [308]| 0.4496330887258172| 5.856259667533207|
  8. |[19, 6, 39]| [345]| 0.5196797865243495|5.4970336458402285|

下面是将df从pyspark导出到bigquery后生成的bigquery中的表的架构:

如果将其视为一个表,则显示如下:

ao218c7q

ao218c7q1#

当使用parquet作为中间格式写入bigquery时,这是一个已知的问题。你能换成兽人吗?方法是:

  1. df.write.format("bigquery").option("table","...").option("temporaryGcsBucket","...").option("intermediateFormat","orc").save()

相关问题