小编Mun*_*esh的帖子

BigQuery - 将查询结果导出到本地文件/Google 存储

我想将查询结果从 BigQuery 导出到本地文件/Google 存储。

我试过 'bq extract' 命令,但它不允许查询作为输入。

Usage: bq extract <source_table> <destination_uris>
Run Code Online (Sandbox Code Playgroud)

我不想提取整个表,因为该表包含许多不需要的列,我需要聚合数据。

到目前为止,我能找到的唯一解决方法是使用“bq query”命令创建一个表并使用“bq extract”来提取数据。

我正在寻找任何更好的方法来通过执行以下操作来实现这一目标。

bq extract 'select dept_id,sum(sal) from temp.employee 
                                 group by dept_id' 'gs://XXXX/employee.csv'
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage google-bigquery

13
推荐指数
5
解决办法
2万
查看次数

如何使用spark(python)读取zip文件中的CSV文件的内容

我有多个zip文件包含两种类型的文件(A.csv和B.csv)

/data/jan.zip - >包含A.csv和B.csv
/data/feb.zip - >包含A.csv和B.csv

我想使用pyspark读取所有zip文件中所有A.csv文件的内容.

 textFile = sc.textFile("hdfs://<HDFS loc>/data/*.zip")
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何将A.csv文件的内容放入RDD吗?

python zip hadoop apache-spark pyspark

11
推荐指数
1
解决办法
4945
查看次数

将 JSON 字符串列拆分为多列

我正在寻找一个通用的解决方案来从 JSON 字符串列中提取所有 json 字段作为列。

df =  spark.read.load(path)
df.show()
Run Code Online (Sandbox Code Playgroud)

“路径”中文件的文件格式是 parquet

样本数据

|id | json_data
| 1 | {"name":"abc", "depts":["dep01", "dep02"]}
| 2 | {"name":"xyz", "depts":["dep03"],"sal":100}
| 3 | {"name":"pqr", "depts":["dep02"], "address":{"city":"SF","state":"CA"}}
Run Code Online (Sandbox Code Playgroud)

预期产出

|id | name    | depts              | sal | address_city | address_state
| 1 | "abc"   | ["dep01", "dep02"] | null| null         | null
| 2 | "xyz"   | ["dep03"]          | 100 | null         | null
| 3 | "pqr"   | ["dep02"]          | null| "SF"         | "CA"
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过创建定义了架构的 …

hadoop apache-spark pyspark

6
推荐指数
1
解决办法
8222
查看次数

通过 SSH 执行脚本并获得输出?

我正在尝试在远程机器上执行命令并获取输出。

我尝试在 shell 脚本下实现,但无法获取内容。

#!/bin/bash

out=$(ssh huser@$source << EOF
while IFS= read -r line
do
echo 'Data : ' $line
done < "data.txt"
EOF
)

echo $out
Run Code Online (Sandbox Code Playgroud)

输出:

Data : Data : Data : 
Run Code Online (Sandbox Code Playgroud)

我可以看到“数据:”被打印了 3 次,因为文件“data.txt”有 3 行文本。

我不能使用 scp 命令直接获取文件,因为我可能必须在文本文件的位置运行一些命令。

有人可以帮我找到问题吗?

提前致谢。

unix ssh shell sh

4
推荐指数
1
解决办法
1万
查看次数