小编Log*_*gan的帖子

Bigquery将列添加到表模式

我正在尝试向BigQuery现有表添加新列.我尝试过bq命令工具和API方法.调用Tables.update()时出现以下错误.

我试过提供带有附加字段的完整模式,并且也给出了如下所示的相同错误.

使用API​​我得到以下错误:

{
    "schema": {
        "fields": [{
            "name": "added_column",
            "type": "integer",
            "mode": "nullable"
        }]
    }
}



{
    "error": {
        "errors": [{
            "domain": "global",
            "reason": "invalid",
            "message": "Provided Schema does not match Table [blah]"
        }],
        "code": 400,
        "message": "Provided Schema does not match Table [blah]"
    }
}
Run Code Online (Sandbox Code Playgroud)

使用BQ工具,我收到以下错误:

./bq update -t blah added_column:integer
Run Code Online (Sandbox Code Playgroud)

更新操作中的BigQuery错误:提供的架构与表[blah]不匹配

google-bigquery

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

猪的地图组密钥值

我是pigcript的新手.说,我们有一个文件

[a#1,b#2,c#3]
[a#4,b#5,c#6]
[a#7,b#8,c#9]
Run Code Online (Sandbox Code Playgroud)

猪脚本

A = LOAD 'txt' AS (in: map[]);
B = FOREACH A GENERATE in#'a';
DUMP B;
Run Code Online (Sandbox Code Playgroud)

我们知道我们可以把钥匙中的价值取出来.在上面的例子中,我采用了包含关键字"a"的值的地图.假设我不知道密钥,我想根据关系中的密钥对值进行分组并转储它.

(a,{1,4,7})
(b,{2,5,8})
(c,{3,6,9})    
Run Code Online (Sandbox Code Playgroud)

猪是否允许此类操作或需要使用UDF?请帮我解决这个问题.谢谢.

map apache-pig

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

通过Pig Scripts处理Json

我目前已开始使用PIG脚本处理JSON文件和处理数据.我正在使用Pig版本0.9.3.我遇到了PiggyBank,我认为这对于在PIG脚本中加载和处理json文件很有用.

我通过ANT构建了piggybank.jar.后来,我编译了Java文件并更新了piggybank.jar.试图运行给定的示例json文件.

我写了一个简单的PIGSCRIPT和相应的JSON,如下所示.

REGISTER piggybank.jar
a = LOAD 'file3.json' using org.apache.pig.piggybank.storage.JsonLoader() AS (json:map[]);
b = foreach a GENERATE flatten(json#'menu') AS menu;
c = foreach b generate flatten(menu#'popup') as popup;
d = foreach c generate flatten(popup#'menuitem') as menu;
e = foreach d generate flatten(menu#'value') as val;
DUMP e;

file3.json
{ "menu" : {
    "id" : "file",
    "value" : "File",
    "popup": {
      "menuitem" : [
        {"value" : "New", "onclick": "CreateNewDoc()"},
        {"value" : "Open", "onclick": "OpenDoc()"},
        {"value" : "Close", "onclick": "CloseDoc()"} …
Run Code Online (Sandbox Code Playgroud)

apache-pig

5
推荐指数
1
解决办法
6170
查看次数

来自HDFS集群的ListFiles

我是hadoop和东西的业余爱好者.现在,我正在尝试访问hadoop集群(HDFS)并从客户端eclipse中检索文件列表.在hadoop java客户端上设置所需的配置后,我可以执行以下操作.

我可以执行copyFromLocalFile,copyToLocalFile操作从客户端访问HDFS.这就是我所面对的.当我给出listFiles()方法时,我得到了

org.apache.hadoop.fs.LocatedFileStatus@d0085360
org.apache.hadoop.fs.LocatedFileStatus@b7aa29bf
Run Code Online (Sandbox Code Playgroud)

MainMethod

Properties props = new Properties();
props.setProperty("fs.defaultFS", "hdfs://<IPOFCLUSTER>:8020");
props.setProperty("mapreduce.jobtracker.address", "<IPOFCLUSTER>:8032");
props.setProperty("yarn.resourcemanager.address", "<IPOFCLUSTER>:8032");
props.setProperty("mapreduce.framework.name", "yarn");
FileSystem fs = FileSystem.get(toConfiguration(props)); // Setting up the required configurations
Path p4 = new Path("/user/myusername/inputjson1/");
RemoteIterator<LocatedFileStatus> ritr = fs.listFiles(p4, true);
while(ritr.hasNext())
        {
            System.out.println(ritr.next().toString());
        }
Run Code Online (Sandbox Code Playgroud)

我也尝试过FileContext,最后只得到filestatus对象字符串或其他东西.当我迭代到远程hdfs目录时是否有可能获取文件名,有一个名为getPath()的方法,这是我们使用hadoop API检索文件名的完整路径的唯一方法,还是有任何其他方法这样我只能检索指定目录路径中文件的名称,请帮我解决这个问题,谢谢.

java hadoop

5
推荐指数
1
解决办法
7042
查看次数

Facebook Export API的替代品

我们有Facebook应用事件数据的数据管道.有没有替代解决方案来获取facebook导出数据,因为它已被弃用,并将从2018年8月1日起停止工作?

https://developers.facebook.com/docs/analytics/export

The Export API is deprecated and will stop working on August 1st 2018.

facebook facebook-graph-api

5
推荐指数
0
解决办法
441
查看次数

在eclipse中覆盖重命名动作

我是eclipse插件开发的新手.我需要覆盖特定自定义项目中文件的重命名对话框.假设我在自定义项目中有一个文件"sample.abcd",它有自己的透视图,自然和构建器.所以每当我尝试重命名这个文件时,我都会得到一个带有文件扩展名的重命名对话框.我想覆盖此对话框,只显示文件名,就像java项目重命名操作一样.你能指点我任何资源,怎么做?谢谢当前重命名操作

eclipse eclipse-plugin eclipse-rcp

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

在java中运行pig而不嵌入pig脚本

我是猪脚本,Hadoop,Hbase的新手.这是我需要知道的.我想运行一个猪脚本,我不想在我的java程序中嵌入pig脚本,并希望通过任何Pig Execution方法运行它,传递必要的pig脚本和参数(可能是参数文件).核心猪库或任何其他库是否提供了执行pig脚本的方法.我已经尝试过使用java运行时exec方法,我使用空格分隔字符串传递一些参数,所以我通过运行时exec方法删除了调用pig grunt命令,因为它不是执行pig命令的正确方法.

java apache-pig

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

HIVE - 使用WITH CLAUSE INSERT OVERWRITE

我有一个生成的查询以WITH子句开头,当我在控制台中运行它时工作正常,当我尝试使用INSERT OVERWRITE运行查询以将输出加载到单独的配置单元表时

INSERT OVERWRITE TABLE $proc_db.$master_table PARTITION(created_dt, country) $master_query
Run Code Online (Sandbox Code Playgroud)

它会引发以下错误

cannot recognize input near 'WITH' 't' 'as' in statement
Run Code Online (Sandbox Code Playgroud)

查询如下:

master_query="
WITH t
AS (
SELECT subscription_id
    ,country
    ,email_type
    ,email_priority
    ,created_dt
FROM crm_arrow.birthday
WHERE created_dt = '2016-07-07'
    AND (COUNTRY = 'SG')
GROUP BY subscription_id
    ,country
    ,email_type
    ,email_priority
    ,created_dt

UNION ALL

SELECT subscription_id
    ,country
    ,email_type
    ,email_priority
    ,created_dt
FROM crm_arrow.wishlist
WHERE created_dt = '2016-07-07'
    AND (COUNTRY = 'SG')
GROUP BY subscription_id
    ,country
    ,email_type
    ,email_priority
    ,created_dt

UNION ALL
.....
)
SELECT q.subscription_id
,q.country …
Run Code Online (Sandbox Code Playgroud)

hadoop hive

2
推荐指数
1
解决办法
8343
查看次数