Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 使用pyspark在Bigquery中将数据编码为ISO_8859_1_Apache Spark_Pyspark_Google Cloud Dataproc - Fatal编程技术网

Apache spark 使用pyspark在Bigquery中将数据编码为ISO_8859_1

Apache spark 使用pyspark在Bigquery中将数据编码为ISO_8859_1,apache-spark,pyspark,google-cloud-dataproc,Apache Spark,Pyspark,Google Cloud Dataproc,我的pyspark数据框中有多语言字符。在将数据写入bigquery后,由于其Deafolt编码方案(utf-8),它会向我显示奇怪的字符。 如何使用pyspark/dataproc将Bigquery中的编码更改为ISO_8859_1 首先要检查源代码或源代码系统 它如何发送数据,并了解它是哪种编码。如果仍然不同,则进行以下调查 AFAIK pyspark正在读取utf-8编码的json,并根据您的评论加载到bigquery中。所以它的默认错误是utf-8 您可以将编码更改为ISO-8859-1

我的pyspark数据框中有多语言字符。在将数据写入bigquery后,由于其Deafolt编码方案(utf-8),它会向我显示奇怪的字符。 如何使用pyspark/dataproc将Bigquery中的编码更改为ISO_8859_1


首先要检查源代码或源代码系统 它如何发送数据,并了解它是哪种编码。如果仍然不同,则进行以下调查

AFAIK pyspark正在读取utf-8编码的json,并根据您的评论加载到bigquery中。所以它的默认错误是utf-8

您可以将编码更改为ISO-8859-1并加载json,如下所示

spark.read.option('encoding','ISO-8859-1').json("yourjsonpathwith latin-1 ")
并加载到bigquery

还有

将数据帧写入bigquery时

  • 您可以使用iso-8859-1和utf-8格式的col和charset使用
    decode
    函数进行测试/调试,以了解使用

    pyspark.sql.functions.decode(columnname,charset)
    以及查看其是否能够解码为utf-8

  • 您可以使用
    pyspark.sql.functions.decode(col,charset)


首先要检查源代码或源系统 它如何发送数据,并了解它是哪种编码。如果仍然不同,则进行以下调查

AFAIK pyspark正在读取utf-8编码的json,并根据您的评论加载到bigquery中。所以它的默认错误是utf-8

您可以将编码更改为ISO-8859-1并加载json,如下所示

spark.read.option('encoding','ISO-8859-1').json("yourjsonpathwith latin-1 ")
并加载到bigquery

还有

将数据帧写入bigquery时

  • 您可以使用iso-8859-1和utf-8格式的col和charset使用
    decode
    函数进行测试/调试,以了解使用

    pyspark.sql.functions.decode(columnname,charset)
    以及查看其是否能够解码为utf-8

  • 您可以使用
    pyspark.sql.functions.decode(col,charset)



    • 源文件本身存在一个问题,因为它通过api传输。因此能够解决问题。

      源文件本身存在问题,因为它通过api传输。因此能够解决问题。

      “将数据写入bigquery后,它会显示奇怪的字符”。。。。。。。你能给我举个例子吗?您在文本编辑器中的何处打开其内容。您正在使用的文本编辑器可能是问题所在。给出一些数据示例,否则很难回答这个问题。我只在bigquery中查看数据。这是一个奇怪字符的例子,我看到了:这些数据的来源是什么?我的意思是csv->bigqueryit是一个json文件,我在pyspark中解析它,并在解析时用ISO_8598_1对数据进行编码。因此,转换就像json文件-->pyspark dataframe-->bigquery表“将数据写入bigquery后,它会显示奇怪的字符”。。。。。。。你能给我举个例子吗?您在文本编辑器中的何处打开其内容。您正在使用的文本编辑器可能是问题所在。给出一些数据示例,否则很难回答这个问题。我只在bigquery中查看数据。这是一个奇怪字符的例子,我看到了:这些数据的来源是什么?我的意思是csv->bigqueryit是一个json文件,我在pyspark中解析它,并在解析时用ISO_8598_1对数据进行编码。因此,转换就像json文件-->pyspark数据帧-->bigquery tableHi Ram,我已经用pyspark进行了编码,正是您在上面的回答中提到的。我不确定bigquery是否会自动将其视为ISO-8859-1,或者在将表写入bigquery时必须指定。指定编码写入大查询时,我正在努力找到如何在写入bigquery时指定编码。我正在使用pyspark bigquery连接器写入bigquerystill不起作用,在我看来,pyspark bigquery连接器首先将数据写入临时存储桶,然后再写入bigquery,有没有解决方法now@RamGhadiyaram请注意,spark bigquery连接器没有“编码”选项,由于它从数据帧的rowsHi Ram中获取字符串,我已经用pyspark进行了编码,这正是您在上面的回答中提到的。我不确定bigquery是否会自动将其视为ISO-8859-1,或者在将表写入bigquery时必须指定。指定编码写入大查询时,我正在努力找到如何在写入bigquery时指定编码。我正在使用pyspark bigquery连接器写入bigquerystill不起作用,在我看来,pyspark bigquery连接器首先将数据写入临时存储桶,然后再写入bigquery,有没有解决方法now@RamGhadiyaram请注意,spark bigquery连接器没有“编码”选项,因为它从数据帧的行中获取字符串