I have no access to your fusion table, so I made up one to make the answer.
First approach: 2D table
var yearly = ee.ImageCollection('JRC/GSW1_0/YearlyHistory');
var mapfunc = function(feat) {
var geom = feat.geometry()
var addProp = function(img, f) {
var newf = ee.Feature(f)
var date = img.date().format()
var value = img.reduceRegion(ee.Reducer.first(), geom, 30).get('waterClass')
return ee.Feature(ee.Algorithms.If(value,
newf.set(date, ee.String(value)),
newf.set(date, ee.String('No data'))))
}
var newfeat = ee.Feature(yearly.iterate(addProp, feat))
return newfeat
};
var newft = fg_points.map(mapfunc);
Export.table.toDrive(newft,
"export_Points",
"export_Points",
"export_Points");
Second approach: 1D table
var yearly = ee.ImageCollection('JRC/GSW1_0/YearlyHistory');
var mapfunc = function(feat) {
var id = ee.String(feat.id())
var geom = feat.geometry()
var newfc = ee.List([])
var addProp = function(img, fc) {
fc = ee.List(fc)
var date = img.date().format()
var value = img.reduceRegion(ee.Reducer.first(), geom, 30).get('waterClass')
var val = ee.String(ee.Algorithms.If(value, ee.String(value), ee.String('No data')))
var featname = ee.String("feat_").cat(id).cat(ee.String("-")).cat(date)
var newfeat = ee.Feature(geom, {name:featname,
value:val})
return fc.add(newfeat)
}
var newfeat = ee.FeatureCollection(ee.List(yearly.iterate(addProp, newfc)))
return newfeat
};
var newft = fg_points.map(mapfunc).flatten();
Export.table.toDrive(newft,
"export_Points",
"export_Points",
"export_Points");
If features in your FeatureCollection have a name
property (or something that identifies each feat) you can change in the second approach:
var id = ee.String(feat.id())
for
var id = ee.String(feat.get('name'))